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