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