From: Andrei Zmievski <andrei@php.net>
Date: Fri, 15 Oct 1999 19:25:27 +0000 (+0000)
Subject: @- Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)
X-Git-Tag: php-4.0b3_RC2~162
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=738c36932a99c036df098f14e3c2fbe9baed74b9;p=php

@- Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)
---

diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 978512bd8b..3c4cd3122c 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -335,6 +335,7 @@ function_entry basic_functions[] = {
 	PHP_FE(array_values,				NULL)
 	PHP_FE(array_count_values,		   	NULL)
 	PHP_FE(array_reverse,				NULL)
+	PHP_FE(array_map,					NULL)
 
 	PHP_FE(connection_aborted,			NULL)
 	PHP_FE(connection_timeout,			NULL)
@@ -2457,7 +2458,7 @@ PHP_FUNCTION(shuffle)
 		php_error(E_WARNING, "Wrong datatype in shuffle() call");
 		return;
 	}
-	if (zend_hash_sort((*array)->value.ht, qsort, array_data_shuffle, 1) == FAILURE) {
+	if (zend_hash_sort((*array)->value.ht, mergesort, array_data_shuffle, 1) == FAILURE) {
 		return;
 	}
 	RETURN_TRUE;
@@ -3141,6 +3142,22 @@ PHP_FUNCTION(array_reverse)
 }
 /* }}} */
 
+/* {{{ proto array array_map(array input, string value_exp [, string key_exp] */
+PHP_FUNCTION(array_map)
+{
+	zval		**input;
+	zval		**value_exp;
+	zval		**key_exp = NULL;
+	int			  argc;
+	
+	argc = ARG_COUNT(ht);
+	
+	if (argc < 2 || argc > 3 || getParametersEx(ht, &input, &value_exp, &key_exp) == FAILURE) {
+		WRONG_PARAM_COUNT;
+	}
+}
+
+
 /*
  * Local variables:
  * tab-width: 4
diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h
index 3b266a99e0..78a499d2fb 100644
--- a/ext/standard/basic_functions.h
+++ b/ext/standard/basic_functions.h
@@ -137,6 +137,7 @@ PHP_FUNCTION(array_keys);
 PHP_FUNCTION(array_values);
 PHP_FUNCTION(array_count_values);
 PHP_FUNCTION(array_reverse);
+PHP_FUNCTION(array_map);
 
 #if HAVE_PUTENV
 typedef struct {