1--TEST--
2Test shuffle() function : usage variation - with MultiDimensional array
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 multi-dimensional array is
12* passed to 'array_arg' argument
13*/
14
15echo "*** Testing shuffle() : with multi-dimensional array ***\n";
16
17// initialise the multi-dimensional array
18$array_arg = array(
19  array(1, 2, 3),
20  array(4, 5, 6),
21  array(7, 8, 9),
22  array(10000, 20000000, 30000000),
23  array(0, 0, 0),
24  array(012, 023, 034),
25  array(0x1, 0x0, 0xa)
26
27);
28
29// calling shuffle() function with multi-dimensional array
30var_dump( shuffle($array_arg) );
31echo "\nThe output array is:\n";
32var_dump( $array_arg );
33
34
35// looping to test shuffle() with each sub-array in the multi-dimensional array
36echo "\n*** Testing shuffle() with arrays having different types of values ***\n";
37$counter = 1;
38for($i=0; $i<=6; $i++) {
39  echo "\n-- Iteration $counter --\n";
40  var_dump( shuffle($array_arg[$i]) );
41  echo "\nThe output array is:\n";
42  var_dump( $array_arg[$i] );
43  $counter++;
44}
45
46echo "Done";
47?>
48--EXPECTF--
49*** Testing shuffle() : with multi-dimensional array ***
50bool(true)
51
52The output array is:
53array(7) {
54  [0]=>
55  array(3) {
56    [0]=>
57    int(%d)
58    [1]=>
59    int(%d)
60    [2]=>
61    int(%d)
62  }
63  [1]=>
64  array(3) {
65    [0]=>
66    int(%d)
67    [1]=>
68    int(%d)
69    [2]=>
70    int(%d)
71  }
72  [2]=>
73  array(3) {
74    [0]=>
75    int(%d)
76    [1]=>
77    int(%d)
78    [2]=>
79    int(%d)
80  }
81  [3]=>
82  array(3) {
83    [0]=>
84    int(%d)
85    [1]=>
86    int(%d)
87    [2]=>
88    int(%d)
89  }
90  [4]=>
91  array(3) {
92    [0]=>
93    int(%d)
94    [1]=>
95    int(%d)
96    [2]=>
97    int(%d)
98  }
99  [5]=>
100  array(3) {
101    [0]=>
102    int(%d)
103    [1]=>
104    int(%d)
105    [2]=>
106    int(%d)
107  }
108  [6]=>
109  array(3) {
110    [0]=>
111    int(%d)
112    [1]=>
113    int(%d)
114    [2]=>
115    int(%d)
116  }
117}
118
119*** Testing shuffle() with arrays having different types of values ***
120
121-- Iteration 1 --
122bool(true)
123
124The output array is:
125array(3) {
126  [0]=>
127  int(%d)
128  [1]=>
129  int(%d)
130  [2]=>
131  int(%d)
132}
133
134-- Iteration 2 --
135bool(true)
136
137The output array is:
138array(3) {
139  [0]=>
140  int(%d)
141  [1]=>
142  int(%d)
143  [2]=>
144  int(%d)
145}
146
147-- Iteration 3 --
148bool(true)
149
150The output array is:
151array(3) {
152  [0]=>
153  int(%d)
154  [1]=>
155  int(%d)
156  [2]=>
157  int(%d)
158}
159
160-- Iteration 4 --
161bool(true)
162
163The output array is:
164array(3) {
165  [0]=>
166  int(%d)
167  [1]=>
168  int(%d)
169  [2]=>
170  int(%d)
171}
172
173-- Iteration 5 --
174bool(true)
175
176The output array is:
177array(3) {
178  [0]=>
179  int(%d)
180  [1]=>
181  int(%d)
182  [2]=>
183  int(%d)
184}
185
186-- Iteration 6 --
187bool(true)
188
189The output array is:
190array(3) {
191  [0]=>
192  int(%d)
193  [1]=>
194  int(%d)
195  [2]=>
196  int(%d)
197}
198
199-- Iteration 7 --
200bool(true)
201
202The output array is:
203array(3) {
204  [0]=>
205  int(%d)
206  [1]=>
207  int(%d)
208  [2]=>
209  int(%d)
210}
211Done
212
213