note 100240 added to function.array-merge

From: Date: Sun, 03 Oct 2010 21:28:13 +0000
Subject: note 100240 added to function.array-merge
Groups: php.notes 
Request: Send a blank email to php-notes+get-172913@lists.php.net to get a copy of this message
Be ready to surprise like this one. array_merge renumbers numeric keys even if key is as string. keys '1' & '2' will be updated to 0 & 1, but '1.1' & '1.2' remain the same, but they are numeric too (is_numeric('1.1') -> true) It's better to use '+' operator or to have your own implementation for array_merge. <?php $x1 = array ( '1' => 'Value 1', '1.1' => 'Value 1.1', ); $x2 = array ( '2' => 'Value 2', '2.1' => 'Value 2.1', ); $x3 = array_merge( $x1, $x2 ); echo '<pre>NOT as expected: '. print_r( $x3, true ) .'</pre>'; $x3 = $x1 + $x2; echo '<pre>As expected: '. print_r( $x3, true ) .'</pre>'; ?> NOT as expected: Array ( [0] => Value 1 [1.1] => Value 1.1 [1] => Value 2 [2.1] => Value 2.1 ) As expected: Array ( [1] => Value 1 [1.1] => Value 1.1 [2] => Value 2 [2.1] => Value 2.1 ) ---- Server IP: 130.206.1.5 Probable Submitter: 87.219.4.154 ---- Manual Page -- http://www.php.net/manual/en/function.array-merge.php Edit -- https://master.php.net/note/edit/100240 Del: integrated -- https://master.php.net/note/delete/100240/integrated Del: useless -- https://master.php.net/note/delete/100240/useless Del: bad code -- https://master.php.net/note/delete/100240/bad+code Del: spam -- https://master.php.net/note/delete/100240/spam Del: non-english -- https://master.php.net/note/delete/100240/non-english Del: in docs -- https://master.php.net/note/delete/100240/in+docs Del: other reasons-- https://master.php.net/note/delete/100240 Reject -- https://master.php.net/note/reject/100240 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#172913) next »