1--TEST-- 2Test ksort() function : usage variations - sort strings 3--FILE-- 4<?php 5/* Prototype : bool ksort ( array &$array [, int $sort_flags] ) 6 * Description: Sort an array by key, maintaining key to data correlation 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11 * testing ksort() by providing array of string values for $array argument with 12 * following flag values: 13 * 1.flag value as defualt 14 * 2.SORT_REGULAR - compare items normally 15 * 3.SORT_STRING - compare items as strings 16*/ 17 18echo "*** Testing ksort() : usage variations ***\n"; 19 20$various_arrays = array ( 21 // diff. escape sequence chars with key values 22 array ( null => null, NULL => NULL, "\a" => "\a", "\cx" => "\cx", "\e" => "\e", 23 "\f" => "\f", "\n" =>"\n", "\r" => "\r", "\t" => "\t", "\xhh" => "\xhh", 24 "\ddd" => "\ddd", "\v" => "\v" 25 ), 26 27 // array containing different strings with key values 28 array ( 'Lemon' => "lemoN", 'o' => "Orange", 'B' => "banana", 'Apple' => "apple", 'te' => "Test", 29 't' => "TTTT", 'T' => "ttt", 'W' => "ww", 'X' => "x", 'x' => "X", 'O' => "oraNGe", 30 'B' => "BANANA" 31 ) 32); 33 34$flags = array("SORT_REGULAR" => SORT_REGULAR, "SORT_STRING" => SORT_STRING); 35 36$count = 1; 37echo "\n-- Testing ksort() by supplying various string arrays --\n"; 38 39// loop through to test ksort() with different arrays 40foreach ($various_arrays as $array) { 41 echo "\n-- Iteration $count --\n"; 42 43 echo "- With defualt sort flag -\n"; 44 $temp_array = $array; 45 var_dump(ksort($temp_array) ); // expecting : bool(true) 46 var_dump($temp_array); 47 48 // loop through $flags array and call ksort() with all possible sort flag values 49 foreach($flags as $key => $flag){ 50 echo "- Sort flag = $key -\n"; 51 $temp_array = $array; 52 var_dump(ksort($temp_array, $flag) ); // expecting : bool(true) 53 var_dump($temp_array); 54 } 55 $count++; 56} 57 58echo "Done\n"; 59?> 60--EXPECT-- 61*** Testing ksort() : usage variations *** 62 63-- Testing ksort() by supplying various string arrays -- 64 65-- Iteration 1 -- 66- With defualt sort flag - 67bool(true) 68array(11) { 69 [""]=> 70 NULL 71 [" "]=> 72 string(1) " " 73 [" 74"]=> 75 string(1) " 76" 77 [""]=> 78 string(1) "" 79 [""]=> 80 string(1) "" 81 [" 81"]=> 82 string(1) " 82" 83 [""]=> 84 string(1) "" 85 ["\a"]=> 86 string(2) "\a" 87 ["\cx"]=> 88 string(3) "\cx" 89 ["\ddd"]=> 90 string(4) "\ddd" 91 ["\xhh"]=> 92 string(4) "\xhh" 93} 94- Sort flag = SORT_REGULAR - 95bool(true) 96array(11) { 97 [""]=> 98 NULL 99 [" "]=> 100 string(1) " " 101 [" 102"]=> 103 string(1) " 104" 105 [""]=> 106 string(1) "" 107 [""]=> 108 string(1) "" 109 [" 109"]=> 110 string(1) " 110" 111 [""]=> 112 string(1) "" 113 ["\a"]=> 114 string(2) "\a" 115 ["\cx"]=> 116 string(3) "\cx" 117 ["\ddd"]=> 118 string(4) "\ddd" 119 ["\xhh"]=> 120 string(4) "\xhh" 121} 122- Sort flag = SORT_STRING - 123bool(true) 124array(11) { 125 [""]=> 126 NULL 127 [" "]=> 128 string(1) " " 129 [" 130"]=> 131 string(1) " 132" 133 [""]=> 134 string(1) "" 135 [""]=> 136 string(1) "" 137 [" 137"]=> 138 string(1) " 138" 139 [""]=> 140 string(1) "" 141 ["\a"]=> 142 string(2) "\a" 143 ["\cx"]=> 144 string(3) "\cx" 145 ["\ddd"]=> 146 string(4) "\ddd" 147 ["\xhh"]=> 148 string(4) "\xhh" 149} 150 151-- Iteration 2 -- 152- With defualt sort flag - 153bool(true) 154array(11) { 155 ["Apple"]=> 156 string(5) "apple" 157 ["B"]=> 158 string(6) "BANANA" 159 ["Lemon"]=> 160 string(5) "lemoN" 161 ["O"]=> 162 string(6) "oraNGe" 163 ["T"]=> 164 string(3) "ttt" 165 ["W"]=> 166 string(2) "ww" 167 ["X"]=> 168 string(1) "x" 169 ["o"]=> 170 string(6) "Orange" 171 ["t"]=> 172 string(4) "TTTT" 173 ["te"]=> 174 string(4) "Test" 175 ["x"]=> 176 string(1) "X" 177} 178- Sort flag = SORT_REGULAR - 179bool(true) 180array(11) { 181 ["Apple"]=> 182 string(5) "apple" 183 ["B"]=> 184 string(6) "BANANA" 185 ["Lemon"]=> 186 string(5) "lemoN" 187 ["O"]=> 188 string(6) "oraNGe" 189 ["T"]=> 190 string(3) "ttt" 191 ["W"]=> 192 string(2) "ww" 193 ["X"]=> 194 string(1) "x" 195 ["o"]=> 196 string(6) "Orange" 197 ["t"]=> 198 string(4) "TTTT" 199 ["te"]=> 200 string(4) "Test" 201 ["x"]=> 202 string(1) "X" 203} 204- Sort flag = SORT_STRING - 205bool(true) 206array(11) { 207 ["Apple"]=> 208 string(5) "apple" 209 ["B"]=> 210 string(6) "BANANA" 211 ["Lemon"]=> 212 string(5) "lemoN" 213 ["O"]=> 214 string(6) "oraNGe" 215 ["T"]=> 216 string(3) "ttt" 217 ["W"]=> 218 string(2) "ww" 219 ["X"]=> 220 string(1) "x" 221 ["o"]=> 222 string(6) "Orange" 223 ["t"]=> 224 string(4) "TTTT" 225 ["te"]=> 226 string(4) "Test" 227 ["x"]=> 228 string(1) "X" 229} 230Done 231