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 [" 82"]=> 83 string(1) " 84" 85 [""]=> 86 string(1) "" 87 ["\a"]=> 88 string(2) "\a" 89 ["\cx"]=> 90 string(3) "\cx" 91 ["\ddd"]=> 92 string(4) "\ddd" 93 ["\xhh"]=> 94 string(4) "\xhh" 95} 96- Sort flag = SORT_REGULAR - 97bool(true) 98array(11) { 99 [""]=> 100 NULL 101 [" "]=> 102 string(1) " " 103 [" 104"]=> 105 string(1) " 106" 107 [""]=> 108 string(1) "" 109 [""]=> 110 string(1) "" 111 [" 112"]=> 113 string(1) " 114" 115 [""]=> 116 string(1) "" 117 ["\a"]=> 118 string(2) "\a" 119 ["\cx"]=> 120 string(3) "\cx" 121 ["\ddd"]=> 122 string(4) "\ddd" 123 ["\xhh"]=> 124 string(4) "\xhh" 125} 126- Sort flag = SORT_STRING - 127bool(true) 128array(11) { 129 [""]=> 130 NULL 131 [" "]=> 132 string(1) " " 133 [" 134"]=> 135 string(1) " 136" 137 [""]=> 138 string(1) "" 139 [""]=> 140 string(1) "" 141 [" 142"]=> 143 string(1) " 144" 145 [""]=> 146 string(1) "" 147 ["\a"]=> 148 string(2) "\a" 149 ["\cx"]=> 150 string(3) "\cx" 151 ["\ddd"]=> 152 string(4) "\ddd" 153 ["\xhh"]=> 154 string(4) "\xhh" 155} 156 157-- Iteration 2 -- 158- With defualt sort flag - 159bool(true) 160array(11) { 161 ["Apple"]=> 162 string(5) "apple" 163 ["B"]=> 164 string(6) "BANANA" 165 ["Lemon"]=> 166 string(5) "lemoN" 167 ["O"]=> 168 string(6) "oraNGe" 169 ["T"]=> 170 string(3) "ttt" 171 ["W"]=> 172 string(2) "ww" 173 ["X"]=> 174 string(1) "x" 175 ["o"]=> 176 string(6) "Orange" 177 ["t"]=> 178 string(4) "TTTT" 179 ["te"]=> 180 string(4) "Test" 181 ["x"]=> 182 string(1) "X" 183} 184- Sort flag = SORT_REGULAR - 185bool(true) 186array(11) { 187 ["Apple"]=> 188 string(5) "apple" 189 ["B"]=> 190 string(6) "BANANA" 191 ["Lemon"]=> 192 string(5) "lemoN" 193 ["O"]=> 194 string(6) "oraNGe" 195 ["T"]=> 196 string(3) "ttt" 197 ["W"]=> 198 string(2) "ww" 199 ["X"]=> 200 string(1) "x" 201 ["o"]=> 202 string(6) "Orange" 203 ["t"]=> 204 string(4) "TTTT" 205 ["te"]=> 206 string(4) "Test" 207 ["x"]=> 208 string(1) "X" 209} 210- Sort flag = SORT_STRING - 211bool(true) 212array(11) { 213 ["Apple"]=> 214 string(5) "apple" 215 ["B"]=> 216 string(6) "BANANA" 217 ["Lemon"]=> 218 string(5) "lemoN" 219 ["O"]=> 220 string(6) "oraNGe" 221 ["T"]=> 222 string(3) "ttt" 223 ["W"]=> 224 string(2) "ww" 225 ["X"]=> 226 string(1) "x" 227 ["o"]=> 228 string(6) "Orange" 229 ["t"]=> 230 string(4) "TTTT" 231 ["te"]=> 232 string(4) "Test" 233 ["x"]=> 234 string(1) "X" 235} 236Done 237