diff options
-rw-r--r-- | ext/standard/array.c | 7 |
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; + } } } /* }}} */ |