1--TEST-- 2Test krsort() function : usage variations - sort integer/float values 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 integer/float/mixed values for $array argument 12 * with following flag values: 13 * 1.flag value as defualt 14 * 2.SORT_REGULAR - compare items normally 15 * 3.SORT_NUMERIC - compare items numerically 16*/ 17 18echo "*** Testing krsort() : usage variations ***\n"; 19 20// diff. associative arrays to sort 21$various_arrays = array( 22 // negative/posative integer key value array 23 array(1 => 11, -2 => -11, 3 => 21, -4 => -21, 5 => 31, -6 => -31, 7 => 0, 8 => 41, -10 =>-41), 24 25 // float key values 26 array(1.0 => 10.5, 0.2 => -10.5, 3.1 => 10.5e2, 4 => 10.6E-2, .5 => .5, 6 => .0001, -7 => -.1), 27 28 // mixed value array with different types of keys 29 array(1 => .0001, 2 => .0021, -3 => -.01, 4 => -1, 5 => 0, 6 => .09, 7 => 2, -8 => -.9, 9 => 10.6E-2, 30 -10 => -10.6E-2, 11 => 33) 31); 32 33// set of possible flag values 34$flags = array("SORT_REGULAR" => SORT_REGULAR, "SORT_NUMERIC" => SORT_NUMERIC); 35 36$count = 1; 37echo "\n-- Testing krsort() by supplying various integer/float 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) ); 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) ); 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 integer/float arrays -- 64 65-- Iteration 1 -- 66- With defualt sort flag - 67bool(true) 68array(9) { 69 [8]=> 70 int(41) 71 [7]=> 72 int(0) 73 [5]=> 74 int(31) 75 [3]=> 76 int(21) 77 [1]=> 78 int(11) 79 [-2]=> 80 int(-11) 81 [-4]=> 82 int(-21) 83 [-6]=> 84 int(-31) 85 [-10]=> 86 int(-41) 87} 88- Sort flag = SORT_REGULAR - 89bool(true) 90array(9) { 91 [8]=> 92 int(41) 93 [7]=> 94 int(0) 95 [5]=> 96 int(31) 97 [3]=> 98 int(21) 99 [1]=> 100 int(11) 101 [-2]=> 102 int(-11) 103 [-4]=> 104 int(-21) 105 [-6]=> 106 int(-31) 107 [-10]=> 108 int(-41) 109} 110- Sort flag = SORT_NUMERIC - 111bool(true) 112array(9) { 113 [8]=> 114 int(41) 115 [7]=> 116 int(0) 117 [5]=> 118 int(31) 119 [3]=> 120 int(21) 121 [1]=> 122 int(11) 123 [-2]=> 124 int(-11) 125 [-4]=> 126 int(-21) 127 [-6]=> 128 int(-31) 129 [-10]=> 130 int(-41) 131} 132 133-- Iteration 2 -- 134- With defualt sort flag - 135bool(true) 136array(6) { 137 [6]=> 138 float(0.0001) 139 [4]=> 140 float(0.106) 141 [3]=> 142 float(1050) 143 [1]=> 144 float(10.5) 145 [0]=> 146 float(0.5) 147 [-7]=> 148 float(-0.1) 149} 150- Sort flag = SORT_REGULAR - 151bool(true) 152array(6) { 153 [6]=> 154 float(0.0001) 155 [4]=> 156 float(0.106) 157 [3]=> 158 float(1050) 159 [1]=> 160 float(10.5) 161 [0]=> 162 float(0.5) 163 [-7]=> 164 float(-0.1) 165} 166- Sort flag = SORT_NUMERIC - 167bool(true) 168array(6) { 169 [6]=> 170 float(0.0001) 171 [4]=> 172 float(0.106) 173 [3]=> 174 float(1050) 175 [1]=> 176 float(10.5) 177 [0]=> 178 float(0.5) 179 [-7]=> 180 float(-0.1) 181} 182 183-- Iteration 3 -- 184- With defualt sort flag - 185bool(true) 186array(11) { 187 [11]=> 188 int(33) 189 [9]=> 190 float(0.106) 191 [7]=> 192 int(2) 193 [6]=> 194 float(0.09) 195 [5]=> 196 int(0) 197 [4]=> 198 int(-1) 199 [2]=> 200 float(0.0021) 201 [1]=> 202 float(0.0001) 203 [-3]=> 204 float(-0.01) 205 [-8]=> 206 float(-0.9) 207 [-10]=> 208 float(-0.106) 209} 210- Sort flag = SORT_REGULAR - 211bool(true) 212array(11) { 213 [11]=> 214 int(33) 215 [9]=> 216 float(0.106) 217 [7]=> 218 int(2) 219 [6]=> 220 float(0.09) 221 [5]=> 222 int(0) 223 [4]=> 224 int(-1) 225 [2]=> 226 float(0.0021) 227 [1]=> 228 float(0.0001) 229 [-3]=> 230 float(-0.01) 231 [-8]=> 232 float(-0.9) 233 [-10]=> 234 float(-0.106) 235} 236- Sort flag = SORT_NUMERIC - 237bool(true) 238array(11) { 239 [11]=> 240 int(33) 241 [9]=> 242 float(0.106) 243 [7]=> 244 int(2) 245 [6]=> 246 float(0.09) 247 [5]=> 248 int(0) 249 [4]=> 250 int(-1) 251 [2]=> 252 float(0.0021) 253 [1]=> 254 float(0.0001) 255 [-3]=> 256 float(-0.01) 257 [-8]=> 258 float(-0.9) 259 [-10]=> 260 float(-0.106) 261} 262Done 263