note 56479 added to function.array-push
| From: | bkatquicknetdotnl at osu1 dot php dot net | Date: | Sun, 04 Sep 2005 08:51:17 +0000 |
| Subject: | note 56479 added to function.array-push | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-94718@lists.php.net to get a copy of this message | ||
Add elements to an array before or after a specific index or key:
<?php
/**
* @return array
* @param array $src
* @param array $in
* @param int|string $pos
*/
function array_push_before($src,$in,$pos){
if(is_int($pos)) $R=array_merge(array_slice($src,0,$pos), $in, array_slice($src,$pos));
else{
foreach($src as $k=>$v){
if($k==$pos)$R=array_merge($R,$in);
$R[$k]=$v;
}
}return $R;
}
/**
* @return array
* @param array $src
* @param array $in
* @param int|string $pos
*/
function array_push_after($src,$in,$pos){
if(is_int($pos)) $R=array_merge(array_slice($src,0,$pos+1), $in, array_slice($src,$pos+1));
else{
foreach($src as $k=>$v){
$R[$k]=$v;
if($k==$pos)$R=array_merge($R,$in);
}
}return $R;
}
// Examples:
$src=array("A","B","C");
$in=array("X","Y");
var_dump(array_push_before($src,$in,1));
/* array_push_before, no-key array
array(5) {
[0]=>
string(1) "A"
[1]=>
string(1) "X"
[2]=>
string(1) "Y"
[3]=>
string(1) "B"
[4]=>
string(1) "C"
}*/
var_dump(array_push_after($src,$in,1));
/* array_push_after, no-key array
array(5) {
[0]=>
string(1) "A"
[1]=>
string(1) "B"
[2]=>
string(1) "X"
[3]=>
string(1) "Y"
[4]=>
string(1) "C"
}*/
$src=array('a'=>"A",'b'=>"B",'c'=>"C");
$in=array('x'=>"X",'y'=>"Y");
var_dump(array_push_before($src,$in,1));
/* array_push_before, key array, before index insert
array(5) {
["a"]=>
string(1) "A"
["x"]=>
string(1) "X"
["y"]=>
string(1) "Y"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}*/
var_dump(array_push_before($src,$in,'b'));
/* array_push_before, key array, before key insert
array(5) {
["a"]=>
string(1) "A"
["x"]=>
string(1) "X"
["y"]=>
string(1) "Y"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}*/
var_dump(array_push_after($src,$in,1));
/* array_push_after, key array, after index insert
array(5) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["x"]=>
string(1) "X"
["y"]=>
string(1) "Y"
["c"]=>
string(1) "C"
}*/
var_dump(array_push_after($src,$in,'b'));
/* array_push_after, key array, after key insert
array(5) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["x"]=>
string(1) "X"
["y"]=>
string(1) "Y"
["c"]=>
string(1) "C"
}*/
?>
----
Manual Page -- http://www.php.net/manual/en/function.array-push.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+56479
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes&reason=non-english
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+56479&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+56479&report=yes
Search -- http://master.php.net/manage/user-notes.php