1--TEST-- 2Test shuffle() function : usage variation - associative arrays with diff types of values 3--FILE-- 4<?php 5/* Prototype : bool shuffle(array $array_arg) 6 * Description: Randomly shuffle the contents of an array 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11* Test behaviour of shuffle() function when associative arrays 12* having different types of values, are passed to 'array_arg' argument 13*/ 14 15echo "*** Testing shuffle() : associative arrays with diff types of values ***\n"; 16 17// initialise different arrays 18$array_arg = array( 19 // array with positive int values 20/*1*/ array("zero" => 0, 1 => 1, "two" => 2, "max_int" => 2147483647 ), 21 22 // array with negative int values 23 array("minus_one" => -1, 'minus_two' => -2, "min_int" => -2147483647 ), 24 25 // array with positive float values 26/*3*/ array("float1" => 0.23, 'float2' => 1.34, "exp1" => 0e2, 'exp2' => 200e-2, "exp3" => 10e0), 27 28 // array with negative float values 29 array(-0.23 => -0.23, -1.34 => -1.34, -200e-2 => -200e-2, -30 => -30e0, -2147473649.80), 30 31 // array with single and double quoted strings 32/*5*/ array('1' => 'one', "str1" => "123numbers", '' => 'hello\tworld', "" => "hello world\0", "12.34floatnum"), 33 34 // array with bool values 35 array('1' => TRUE, "1" => TRUE, "0" => FALSE, '0' => FALSE), 36 37 // array with positive hexa values 38/*7*/ array("hex1" => 0x123, 'hex2' => 0xabc, "hex\t3" => 0xABC, "hex\04" => 0xAb1), 39 40 // array with negative hexa values 41 array(NULL => -0x123, "NULL" => -0xabc, "-ABC" => -0xABC, -0xAB1 => -0xAb1), 42 43 // array with positive octal values 44/*9*/ array(0123 => 0123, "02348" => 02348, '034' => 034, 00 => 00), 45 46 // array with negative octal values 47 array(-0123 => -0123, "-02348" => -02348, '-034' => -034), 48 49 // array with null values 50/*11*/ array(NULL => NULL, "null" => NULL, "NULL" => NULL) 51 52); 53 54// looping to test shuffle() with each sub-array in the $array_arg array 55echo "\n*** Testing shuffle() with arrays having different types of values ***\n"; 56$counter = 1; 57foreach($array_arg as $arr) { 58 echo "\n-- Iteration $counter --\n"; 59 var_dump( shuffle($arr) ); 60 echo "\nThe output array is:\n"; 61 var_dump( $arr ); 62 $counter++; 63} 64 65echo "Done"; 66?> 67--EXPECTF-- 68*** Testing shuffle() : associative arrays with diff types of values *** 69 70*** Testing shuffle() with arrays having different types of values *** 71 72-- Iteration 1 -- 73bool(true) 74 75The output array is: 76array(4) { 77 [0]=> 78 int(%d) 79 [1]=> 80 int(%d) 81 [2]=> 82 int(%d) 83 [3]=> 84 int(%d) 85} 86 87-- Iteration 2 -- 88bool(true) 89 90The output array is: 91array(3) { 92 [0]=> 93 int(-%d) 94 [1]=> 95 int(-%d) 96 [2]=> 97 int(-%d) 98} 99 100-- Iteration 3 -- 101bool(true) 102 103The output array is: 104array(5) { 105 [0]=> 106 float(%f) 107 [1]=> 108 float(%f) 109 [2]=> 110 float(%f) 111 [3]=> 112 float(%f) 113 [4]=> 114 float(%f) 115} 116 117-- Iteration 4 -- 118bool(true) 119 120The output array is: 121array(5) { 122 [0]=> 123 float(-%f) 124 [1]=> 125 float(-%f) 126 [2]=> 127 float(-%f) 128 [3]=> 129 float(-%f) 130 [4]=> 131 float(-%f) 132} 133 134-- Iteration 5 -- 135bool(true) 136 137The output array is: 138array(4) { 139 [0]=> 140 string(%d) "%s" 141 [1]=> 142 string(%d) "%s" 143 [2]=> 144 string(%d) "%s" 145 [3]=> 146 string(%d) "%s" 147} 148 149-- Iteration 6 -- 150bool(true) 151 152The output array is: 153array(2) { 154 [0]=> 155 bool(%s) 156 [1]=> 157 bool(%s) 158} 159 160-- Iteration 7 -- 161bool(true) 162 163The output array is: 164array(4) { 165 [0]=> 166 int(%d) 167 [1]=> 168 int(%d) 169 [2]=> 170 int(%d) 171 [3]=> 172 int(%d) 173} 174 175-- Iteration 8 -- 176bool(true) 177 178The output array is: 179array(4) { 180 [0]=> 181 int(-%d) 182 [1]=> 183 int(-%d) 184 [2]=> 185 int(-%d) 186 [3]=> 187 int(-%d) 188} 189 190-- Iteration 9 -- 191bool(true) 192 193The output array is: 194array(4) { 195 [0]=> 196 int(%d) 197 [1]=> 198 int(%d) 199 [2]=> 200 int(%d) 201 [3]=> 202 int(%d) 203} 204 205-- Iteration 10 -- 206bool(true) 207 208The output array is: 209array(3) { 210 [0]=> 211 int(-%d) 212 [1]=> 213 int(-%d) 214 [2]=> 215 int(-%d) 216} 217 218-- Iteration 11 -- 219bool(true) 220 221The output array is: 222array(3) { 223 [0]=> 224 NULL 225 [1]=> 226 NULL 227 [2]=> 228 NULL 229} 230Done 231 232