note 56479 added to function.array-push

From: 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

« previous php.notes (#94718) next »