1--TEST--
2Test array_unshift() function : usage variations - two dimensional arrays for 'array' argument
3--FILE--
4<?php
5/* Prototype  : int array_unshift(array $array, mixed $var [, mixed ...])
6 * Description: Pushes elements onto the beginning of the array
7 * Source code: ext/standard/array.c
8*/
9
10/*
11 * Testing the functionality of array_unshift() by giving two-dimensional
12 * arrays and also sub-arrays within the two-dimensional array for $array argument.
13 * The $var argument passed is a fixed value
14*/
15
16echo "*** Testing array_unshift() : two dimensional arrays for \$array argument ***\n";
17
18// initializing $var argument
19$var = 10;
20
21// two-dimensional array to be passed to $array argument
22$two_dimensional_array = array(
23
24   // associative array
25   array('color' => 'red', 'item' => 'pen', 'place' => 'LA'),
26
27   // numeric array
28   array(1, 2, 3, 4, 5),
29
30   // combination of numeric and associative arrays
31   array('a' => 'green', 'red', 'brown', 33, 88, 'orange', 'item' => 'ball')
32);
33
34/* Passing the entire $two_dimensional_array to $array */
35
36/* With default argument */
37// returns element count in the resulting array after arguments are pushed to
38// beginning of the given array
39$temp_array = $two_dimensional_array;
40var_dump( array_unshift($temp_array, $var) );  // whole 2-d array
41
42// dumps the resulting array
43var_dump($temp_array);
44
45/* With optional arguments */
46// returns element count in the resulting array after arguments are pushed to
47// beginning of the given array
48$temp_array = $two_dimensional_array;
49var_dump( array_unshift($temp_array, $var, "hello", 'world') );  // whole 2-d array
50
51// dumps the resulting array
52var_dump($temp_array);
53
54/* Passing the sub-array within the $two_dimensional_array to $array argument */
55
56/* With default argument */
57// returns element count in the resulting array after arguments are pushed to
58// beginning of the given array
59$temp_array = $two_dimensional_array[0];
60var_dump( array_unshift($temp_array, $var) );  // sub array
61
62// dumps the resulting array
63var_dump($temp_array);
64
65/* With optional arguments */
66// returns element count in the resulting array after arguments are pushed to
67// beginning of the given array
68$temp_array = $two_dimensional_array[0];
69var_dump( array_unshift($temp_array, $var, "hello", 'world') );  // sub array
70
71// dumps the resulting array
72var_dump($temp_array);
73
74echo "Done";
75?>
76--EXPECT--
77*** Testing array_unshift() : two dimensional arrays for $array argument ***
78int(4)
79array(4) {
80  [0]=>
81  int(10)
82  [1]=>
83  array(3) {
84    ["color"]=>
85    string(3) "red"
86    ["item"]=>
87    string(3) "pen"
88    ["place"]=>
89    string(2) "LA"
90  }
91  [2]=>
92  array(5) {
93    [0]=>
94    int(1)
95    [1]=>
96    int(2)
97    [2]=>
98    int(3)
99    [3]=>
100    int(4)
101    [4]=>
102    int(5)
103  }
104  [3]=>
105  array(7) {
106    ["a"]=>
107    string(5) "green"
108    [0]=>
109    string(3) "red"
110    [1]=>
111    string(5) "brown"
112    [2]=>
113    int(33)
114    [3]=>
115    int(88)
116    [4]=>
117    string(6) "orange"
118    ["item"]=>
119    string(4) "ball"
120  }
121}
122int(6)
123array(6) {
124  [0]=>
125  int(10)
126  [1]=>
127  string(5) "hello"
128  [2]=>
129  string(5) "world"
130  [3]=>
131  array(3) {
132    ["color"]=>
133    string(3) "red"
134    ["item"]=>
135    string(3) "pen"
136    ["place"]=>
137    string(2) "LA"
138  }
139  [4]=>
140  array(5) {
141    [0]=>
142    int(1)
143    [1]=>
144    int(2)
145    [2]=>
146    int(3)
147    [3]=>
148    int(4)
149    [4]=>
150    int(5)
151  }
152  [5]=>
153  array(7) {
154    ["a"]=>
155    string(5) "green"
156    [0]=>
157    string(3) "red"
158    [1]=>
159    string(5) "brown"
160    [2]=>
161    int(33)
162    [3]=>
163    int(88)
164    [4]=>
165    string(6) "orange"
166    ["item"]=>
167    string(4) "ball"
168  }
169}
170int(4)
171array(4) {
172  [0]=>
173  int(10)
174  ["color"]=>
175  string(3) "red"
176  ["item"]=>
177  string(3) "pen"
178  ["place"]=>
179  string(2) "LA"
180}
181int(6)
182array(6) {
183  [0]=>
184  int(10)
185  [1]=>
186  string(5) "hello"
187  [2]=>
188  string(5) "world"
189  ["color"]=>
190  string(3) "red"
191  ["item"]=>
192  string(3) "pen"
193  ["place"]=>
194  string(2) "LA"
195}
196Done
197