andrei          Fri Dec 12 19:19:04 2008 UTC

  Modified files:              
    /php-src/ext/standard       array.c 
  Log:
  Add sort flags parameter to array_unique().
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.467&r2=1.468&diff_format=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.467 php-src/ext/standard/array.c:1.468
--- php-src/ext/standard/array.c:1.467  Wed Nov 26 00:59:13 2008
+++ php-src/ext/standard/array.c        Fri Dec 12 19:19:04 2008
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: array.c,v 1.467 2008/11/26 00:59:13 lbarnaud Exp $ */
+/* $Id: array.c,v 1.468 2008/12/12 19:19:04 andrei Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -2895,7 +2895,7 @@
 }
 /* }}} */
 
-/* {{{ proto array array_unique(array input) U
+/* {{{ proto array array_unique(array input [, int sort_flags]) U
    Removes duplicate values from array */
 PHP_FUNCTION(array_unique)
 {
@@ -2907,11 +2907,14 @@
        };
        struct bucketindex *arTmp, *cmpdata, *lastkept;
        unsigned int i;
+       long sort_type = PHP_SORT_REGULAR;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == 
FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, 
&sort_type) == FAILURE) {
                return;
        }
 
+       php_set_compare_func(sort_type TSRMLS_CC);
+
        array_init_size(return_value, 
zend_hash_num_elements(Z_ARRVAL_P(array)));
        zend_hash_copy(Z_ARRVAL_P(return_value), Z_ARRVAL_P(array), 
(copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*));
 
@@ -2930,7 +2933,6 @@
                arTmp[i].i = i;
        }
        arTmp[i].b = NULL;
-       php_set_compare_func(PHP_SORT_STRING TSRMLS_CC);
        zend_qsort((void *) arTmp, i, sizeof(struct bucketindex), 
php_array_data_compare TSRMLS_CC);
 
        /* go through the sorted array and delete duplicates from the copy */



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to