From e5b7d5ccb418afd25f932737f399328fe90e6a0b Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sat, 9 Aug 2003 20:49:00 +0000 Subject: [PATCH] Fixed bug #24897 (inconsistent behavior of shuffle() & array_multisort()) --- ext/standard/array.c | 4 ++-- ext/standard/tests/array/bug24897.phpt | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 ext/standard/tests/array/bug24897.phpt diff --git a/ext/standard/array.c b/ext/standard/array.c index ae058cd1a21..0bcbc782e10 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1639,7 +1639,7 @@ static void array_data_shuffle(zval *array TSRMLS_DC) n_elems = zend_hash_num_elements(Z_ARRVAL_P(array)); - if (n_elems <= 1) { + if (n_elems < 1) { return; } @@ -3150,7 +3150,7 @@ PHP_FUNCTION(array_multisort) } /* If all arrays are empty or have only one entry, we don't need to do anything. */ - if (array_size <= 1) { + if (array_size < 1) { for (k = 0; k < MULTISORT_LAST; k++) efree(ARRAYG(multisort_flags)[k]); efree(arrays); diff --git a/ext/standard/tests/array/bug24897.phpt b/ext/standard/tests/array/bug24897.phpt new file mode 100644 index 00000000000..45bcde340f2 --- /dev/null +++ b/ext/standard/tests/array/bug24897.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #24897 (inconsistent behaviour or shuffle() & array_multisort()) +--FILE-- + 2); +shuffle($a); +var_dump($a); + +$a = array(1 => 2); +array_multisort($a); +var_dump($a); +?> +--EXPECT-- +array(1) { + [0]=> + int(2) +} +array(1) { + [0]=> + int(2) +}