|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-07-31 21:04 UTC] chro at sokrates dot uio dot no
Description: ------------ array_multisort() will reindex the array but not if array length is 1 Produced and reproduced in php.4.3.x and up to 5.beta Similar (but not the same) as http://bugs.php.net/bug.php?id=12572 (different function, 12572 is sort() ) Reproduce code: --------------- <?php // array_multisort() will reindex the array but not if array length is 1, is this a bug? // array length 1 $a = array(1=>1); array_multisort($a); var_dump($a); // output: array(1) { [1]=> int(1) } // first index 1, not reindexed! //---------------------- // array length 2 $a = array(1=>1,2); array_multisort($a); var_dump($a); // output: array(2) { [0]=> int(1) [1]=> int(2) } // first index 0, reindexed! ?> Expected result: ---------------- Array should be reindexed to: output: array(1) { [0]=> int(1) } on first attempt (where array length = 1) Actual result: -------------- output: array(1) { [1]=> int(1) } array is not reindexed PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 10:00:02 2025 UTC |
From sources: /* If all arrays are empty or have only one entry, we don't need to do anything. */ According to that, this is the expected behaviour. This was for empty arrays first, but Andrei changed it later with this commit: array.c:r1.43 (PHP array_multisort) Fix the array_size test. Assigning to Andrei who should decide whether the reindexing should be done for 1 element arrays or not.