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