1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
--TEST--
Test array_rand() function : usage variation - with MultiDimensional array
--FILE--
<?php
/* Prototype : mixed array_rand(array $input [, int $num_req])
* Description: Return key/keys for random entry/entries in the array
* Source code: ext/standard/array.c
*/
/*
* Test behaviour of array_rand() function when multi-dimensional array
* is passed to 'input' argument
*/
echo "*** Testing array_rand() : with multi-dimensional array ***\n";
// initialise the multi-dimensional array
$input = array(
// array with int values
/*1*/ array(1, 2, 0, -0, -1, -2),
// array with float values
array(1.23, -1.23, 0.34, -0.34, 0e2, 2e-3, -2e2, -40e-2),
// array with single quoted strings
/*3*/ array('one', '123numbers', 'hello\tworld', 'hello world\0', '12.34floatnum'),
// array with double quoted strings
array("one","123numbers", "hello\tworld", "hello world\0", "12.34floatnum"),
// array with bool values
/*5*/ array(true, TRUE, FALSE, false, TrUe, FaLsE),
// array with hexa values
array(0x123, -0x123, 0xabc, 0xABC, 0xab),
// array with null values
/*7*/ array(null, NULL, "\0", Null, NuLl)
);
// initialise 'num_req' variable
$num_req = 3;
// calling array_rand() function with multi-dimensional array
var_dump( array_rand($input, $num_req) );
// looping to test array_rand() with each sub-array in the multi-dimensional array
echo "\n*** Testing array_rand() with arrays having different types of values ***\n";
$counter = 1;
foreach($input as $arr) {
echo "\n-- Iteration $counter --\n";
var_dump( array_rand($arr) ); // with default arguments
var_dump( array_rand($arr, 3) ); // with default as well as optional arguments
$counter++;
}
echo "Done";
?>
--EXPECTF--
*** Testing array_rand() : with multi-dimensional array ***
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
*** Testing array_rand() with arrays having different types of values ***
-- Iteration 1 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 2 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 3 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 4 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 5 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 6 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
-- Iteration 7 --
int(%d)
array(3) {
[0]=>
int(%d)
[1]=>
int(%d)
[2]=>
int(%d)
}
Done
|