1--TEST-- 2sort_with_sort_keys() 3--SKIPIF-- 4<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> 5--FILE-- 6<?php 7 8/* 9 * Sort arrays using various locales. 10 */ 11 12 13$test_num = 1; 14 15/* 16 * Sort arrays in the given list using specified locale. 17 */ 18function sort_arrays( $locale, $arrays ) 19{ 20 $res_str = ''; 21 22 $coll = ut_coll_create( $locale ); 23 24 foreach( $arrays as $array ) 25 { 26 // Sort array values 27 $res_val = ut_coll_sort_with_sort_keys( $coll, $array ); 28 29 // Concatenate the sorted array and function result 30 // with output string. 31 $res_dump = "\n" . dump( $array ) . 32 "\n Result: " . dump( $res_val ); 33 34 35 // Preppend test signature to output string 36 $md5 = md5( $res_dump ); 37 38 global $test_num; 39 40 $res_str .= "\n\n". 41 "Test $test_num.$md5:" . 42 $res_dump; 43 ++$test_num; 44 } 45 46 return $res_str; 47} 48 49 50function ut_main() 51{ 52 global $test_num; 53 $test_num = 1; 54 $res_str = ''; 55 56 // Sort an array in SORT_REGULAR mode using en_US locale. 57 $test_params = array( 58 array( 'abc', 'abd', 'aaa' ), 59 array( 'm' , '1' , '_' ), 60 array( 'a' , 'aaa', 'aa' ), 61 array( 'ba' , 'b' , 'ab' ), 62 array( 'e' , 'c' , 'a' ), 63 array( 'd' , '' , ' a' ), 64 array( 'd ' , 'f ' , ' a' ), 65 array( 'a' , null , '3' ), 66 array( 'y' , 'i' , 'k' ) 67 ); 68 69 $res_str .= sort_arrays( 'en_US', $test_params ); 70 71 // Sort a non-ASCII array using ru_RU locale. 72 $test_params = array( 73 array( 'абг', 'абв', 'ааа', 'abc' ), 74 array( 'аа', 'ааа', 'а' ) 75 ); 76 77 $res_str .= sort_arrays( 'ru_RU', $test_params ); 78 79 // Array with data for sorting. 80 $test_params = array( 81 array( 'y' , 'i' , 'k' ) 82 ); 83 84 // Sort an array using Lithuanian locale. 85 $res_str .= sort_arrays( 'lt_LT', $test_params ); 86 87 return $res_str . "\n"; 88} 89 90include_once( 'ut_common.inc' ); 91ut_run(); 92?> 93--EXPECT-- 94Test 1.e8f1cd28133d79ecd660002f1c660d0e: 95array ( 96 0 => 'aaa', 97 1 => 'abc', 98 2 => 'abd', 99) 100 Result: true 101 102Test 2.c2ded12173dd2996927378cae37eb275: 103array ( 104 0 => '_', 105 1 => '1', 106 2 => 'm', 107) 108 Result: true 109 110Test 3.54071c968d71cb98c5d379145f8d7d38: 111array ( 112 0 => 'a', 113 1 => 'aa', 114 2 => 'aaa', 115) 116 Result: true 117 118Test 4.19abe63d6f6dfef65b0e3c9ab4826b07: 119array ( 120 0 => 'ab', 121 1 => 'b', 122 2 => 'ba', 123) 124 Result: true 125 126Test 5.9a8dc0a9bc771368c2f1fc3d02754610: 127array ( 128 0 => 'a', 129 1 => 'c', 130 2 => 'e', 131) 132 Result: true 133 134Test 6.923d65739c5219c634616ffd100a50e4: 135array ( 136 0 => '', 137 1 => ' a', 138 2 => 'd', 139) 140 Result: true 141 142Test 7.289bc2f28e87d3201ec9d7e8477ae1b0: 143array ( 144 0 => ' a', 145 1 => 'd ', 146 2 => 'f ', 147) 148 Result: true 149 150Test 8.de0fd958484f2377a645835d7fbcf124: 151array ( 152 0 => NULL, 153 1 => '3', 154 2 => 'a', 155) 156 Result: true 157 158Test 9.dd2b8f0adb37c45d528cad1a0cc0f361: 159array ( 160 0 => 'i', 161 1 => 'k', 162 2 => 'y', 163) 164 Result: true 165 166Test 10.ca0e38a2e3147dd97070f2128f140934: 167array ( 168 0 => 'abc', 169 1 => 'ааа', 170 2 => 'абв', 171 3 => 'абг', 172) 173 Result: true 174 175Test 11.91480b10473a0c96a4cd6d88c23c577a: 176array ( 177 0 => 'а', 178 1 => 'аа', 179 2 => 'ааа', 180) 181 Result: true 182 183Test 12.fdd3fe3981476039164aa000bf9177f2: 184array ( 185 0 => 'i', 186 1 => 'y', 187 2 => 'k', 188) 189 Result: true 190