summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 29f659e97f..fbbe08678f 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -65,6 +65,7 @@ php_array_globals array_globals;
#define SORT_REGULAR 0
#define SORT_NUMERIC 1
#define SORT_STRING 2
+#define SORT_LOCALE_STRING 5
#define SORT_DESC 3
#define SORT_ASC 4
@@ -114,6 +115,8 @@ PHP_MINIT_FUNCTION(array)
REGISTER_LONG_CONSTANT("SORT_REGULAR", SORT_REGULAR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SORT_NUMERIC", SORT_NUMERIC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SORT_STRING", SORT_STRING, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SORT_LOCALE_STRING", SORT_LOCALE_STRING, CONST_CS | CONST_PERSISTENT);
+
REGISTER_LONG_CONSTANT("CASE_LOWER", CASE_LOWER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("CASE_UPPER", CASE_UPPER, CONST_CS | CONST_PERSISTENT);
@@ -143,6 +146,12 @@ static void set_compare_func(int sort_type TSRMLS_DC)
ARRAYG(compare_func) = string_compare_function;
break;
+#if HAVE_STRCOLL
+ case SORT_LOCALE_STRING:
+ ARRAYG(compare_func) = string_locale_compare_function;
+ break;
+#endif
+
case SORT_REGULAR:
default:
ARRAYG(compare_func) = compare_function;