1--TEST-- 2Test asort() function : usage variations - sort integer/float values 3--FILE-- 4<?php 5/* Prototype : bool asort ( array &$array [, int $sort_flags] ) 6 * Description: Sort an array and maintain index association 7 Elements will be arranged from lowest to highest when this function has completed. 8 * Source code: ext/standard/array.c 9*/ 10 11/* 12 * Testing asort() by providing different integer/float value arrays for $array argument with following 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 asort() : usage variations ***\n"; 19 20// group of various arrays with indices 21$various_arrays = array( 22 // negative/posative integer array 23 array(1 => 11, 2 => -11, 3 => 21, 4 => -21, 5 => 31, 6 => -31, 7 => 0, 8 => 41, 10 =>-41), 24 25 // float value array 26 array(1 => 10.5, 2 => -10.5, 3 => 10.5e2, 4 => 10.6E-2, 5 => .5, 6 => .0001, 7 => -.1), 27 28 // mixed value array 29 array(1 => .0001, 2 => .0021, 3 => -.01, 4 => -1, 5 => 0, 6 => .09, 7 => 2, 8 => -.9, 9 => 10.6E-2, 10 => -10.6E-2, 11 => 33), 30 31 // array values contains minimum and maximum ranges 32 array(1 => 2147483647, 2 => 2147483648, 3 => -2147483647, 4 => -2147483648, 5 => -0, 6 => 0, 7 => -2147483649) 33); 34 35// set of possible flag values 36$flag_value = array("SORT_REGULAR" => SORT_REGULAR, "SORT_NUMERIC" => SORT_NUMERIC); 37 38$count = 1; 39echo "\n-- Testing asort() by supplying various integer/float arrays --\n"; 40 41// loop through to test asort() with different arrays 42foreach ($various_arrays as $array) { 43 echo "\n-- Iteration $count --\n"; 44 45 echo "- With default sort_flag -\n"; 46 $temp_array = $array; 47 var_dump(asort($temp_array) ); 48 var_dump($temp_array); 49 50 // loop through $flag_value array and setting all possible flag values 51 foreach($flag_value as $key => $flag){ 52 echo "- Sort_flag = $key -\n"; 53 $temp_array = $array; 54 var_dump(asort($temp_array, $flag) ); 55 var_dump($temp_array); 56 } 57 $count++; 58} 59 60echo "Done\n"; 61?> 62--EXPECTF-- 63*** Testing asort() : usage variations *** 64 65-- Testing asort() by supplying various integer/float arrays -- 66 67-- Iteration 1 -- 68- With default sort_flag - 69bool(true) 70array(9) { 71 [10]=> 72 int(-41) 73 [6]=> 74 int(-31) 75 [4]=> 76 int(-21) 77 [2]=> 78 int(-11) 79 [7]=> 80 int(0) 81 [1]=> 82 int(11) 83 [3]=> 84 int(21) 85 [5]=> 86 int(31) 87 [8]=> 88 int(41) 89} 90- Sort_flag = SORT_REGULAR - 91bool(true) 92array(9) { 93 [10]=> 94 int(-41) 95 [6]=> 96 int(-31) 97 [4]=> 98 int(-21) 99 [2]=> 100 int(-11) 101 [7]=> 102 int(0) 103 [1]=> 104 int(11) 105 [3]=> 106 int(21) 107 [5]=> 108 int(31) 109 [8]=> 110 int(41) 111} 112- Sort_flag = SORT_NUMERIC - 113bool(true) 114array(9) { 115 [10]=> 116 int(-41) 117 [6]=> 118 int(-31) 119 [4]=> 120 int(-21) 121 [2]=> 122 int(-11) 123 [7]=> 124 int(0) 125 [1]=> 126 int(11) 127 [3]=> 128 int(21) 129 [5]=> 130 int(31) 131 [8]=> 132 int(41) 133} 134 135-- Iteration 2 -- 136- With default sort_flag - 137bool(true) 138array(7) { 139 [2]=> 140 float(-10.5) 141 [7]=> 142 float(-0.1) 143 [6]=> 144 float(0.0001) 145 [4]=> 146 float(0.106) 147 [5]=> 148 float(0.5) 149 [1]=> 150 float(10.5) 151 [3]=> 152 float(1050) 153} 154- Sort_flag = SORT_REGULAR - 155bool(true) 156array(7) { 157 [2]=> 158 float(-10.5) 159 [7]=> 160 float(-0.1) 161 [6]=> 162 float(0.0001) 163 [4]=> 164 float(0.106) 165 [5]=> 166 float(0.5) 167 [1]=> 168 float(10.5) 169 [3]=> 170 float(1050) 171} 172- Sort_flag = SORT_NUMERIC - 173bool(true) 174array(7) { 175 [2]=> 176 float(-10.5) 177 [7]=> 178 float(-0.1) 179 [6]=> 180 float(0.0001) 181 [4]=> 182 float(0.106) 183 [5]=> 184 float(0.5) 185 [1]=> 186 float(10.5) 187 [3]=> 188 float(1050) 189} 190 191-- Iteration 3 -- 192- With default sort_flag - 193bool(true) 194array(11) { 195 [4]=> 196 int(-1) 197 [8]=> 198 float(-0.9) 199 [10]=> 200 float(-0.106) 201 [3]=> 202 float(-0.01) 203 [5]=> 204 int(0) 205 [1]=> 206 float(0.0001) 207 [2]=> 208 float(0.0021) 209 [6]=> 210 float(0.09) 211 [9]=> 212 float(0.106) 213 [7]=> 214 int(2) 215 [11]=> 216 int(33) 217} 218- Sort_flag = SORT_REGULAR - 219bool(true) 220array(11) { 221 [4]=> 222 int(-1) 223 [8]=> 224 float(-0.9) 225 [10]=> 226 float(-0.106) 227 [3]=> 228 float(-0.01) 229 [5]=> 230 int(0) 231 [1]=> 232 float(0.0001) 233 [2]=> 234 float(0.0021) 235 [6]=> 236 float(0.09) 237 [9]=> 238 float(0.106) 239 [7]=> 240 int(2) 241 [11]=> 242 int(33) 243} 244- Sort_flag = SORT_NUMERIC - 245bool(true) 246array(11) { 247 [4]=> 248 int(-1) 249 [8]=> 250 float(-0.9) 251 [10]=> 252 float(-0.106) 253 [3]=> 254 float(-0.01) 255 [5]=> 256 int(0) 257 [1]=> 258 float(0.0001) 259 [2]=> 260 float(0.0021) 261 [6]=> 262 float(0.09) 263 [9]=> 264 float(0.106) 265 [7]=> 266 int(2) 267 [11]=> 268 int(33) 269} 270 271-- Iteration 4 -- 272- With default sort_flag - 273bool(true) 274array(7) { 275 [7]=> 276 %s(-2147483649) 277 [4]=> 278 %s(-2147483648) 279 [3]=> 280 int(-2147483647) 281 [5]=> 282 int(0) 283 [6]=> 284 int(0) 285 [1]=> 286 int(2147483647) 287 [2]=> 288 %s(2147483648) 289} 290- Sort_flag = SORT_REGULAR - 291bool(true) 292array(7) { 293 [7]=> 294 %s(-2147483649) 295 [4]=> 296 %s(-2147483648) 297 [3]=> 298 int(-2147483647) 299 [5]=> 300 int(0) 301 [6]=> 302 int(0) 303 [1]=> 304 int(2147483647) 305 [2]=> 306 %s(2147483648) 307} 308- Sort_flag = SORT_NUMERIC - 309bool(true) 310array(7) { 311 [7]=> 312 %s(-2147483649) 313 [4]=> 314 %s(-2147483648) 315 [3]=> 316 int(-2147483647) 317 [5]=> 318 int(0) 319 [6]=> 320 int(0) 321 [1]=> 322 int(2147483647) 323 [2]=> 324 %s(2147483648) 325} 326Done 327