summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/array.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 80a2239572..1478da640b 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2764,6 +2764,13 @@ PHP_FUNCTION(array_rand)
num_avail--;
zend_hash_move_forward(Z_ARRVAL_PP(input));
+ }
+
+ if (num_req_val == num_avail) {
+ if (zend_hash_sort(Z_ARRVAL_P(return_value), (sort_func_t)mergesort, array_data_shuffle, 1) == FAILURE) {
+ zval_dtor(return_value);
+ RETURN_FALSE;
+ }
}
}
/* }}} */