summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_rand_variation3.phpt
blob: 6c656ef55e525cc76c0db0327b86604e4c72d61b (plain)
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