1--TEST--
2Test array_merge_recursive() function : basic functionality - associative arrays
3--FILE--
4<?php
5/* Prototype  : array array_merge_recursive(array $arr1[, array $...])
6 * Description: Recursively merges elements from passed arrays into one array
7 * Source code: ext/standard/array.c
8*/
9
10echo "*** Testing array_merge_recursive() : associative arrays ***\n";
11
12// Initialise the arrays
13$arr1 = array(1 => "one", 2 => array(1, 2));
14$arr2 = array(2 => 'three', "four" => array("hello", 'world'));
15$arr3 = array(1 => array(6, 7), 'four' => array("str1", 'str2'));
16
17// Calling array_merge_recursive() with default arguments
18echo "-- With default argument --\n";
19var_dump( array_merge_recursive($arr1) );
20
21// Calling array_merge_recursive() with more arguments
22echo "-- With more arguments --\n";
23var_dump( array_merge_recursive($arr1,$arr2) );
24var_dump( array_merge_recursive($arr1,$arr2,$arr3) );
25
26echo "Done";
27?>
28--EXPECTF--
29*** Testing array_merge_recursive() : associative arrays ***
30-- With default argument --
31array(2) {
32  [0]=>
33  string(3) "one"
34  [1]=>
35  array(2) {
36    [0]=>
37    int(1)
38    [1]=>
39    int(2)
40  }
41}
42-- With more arguments --
43array(4) {
44  [0]=>
45  string(3) "one"
46  [1]=>
47  array(2) {
48    [0]=>
49    int(1)
50    [1]=>
51    int(2)
52  }
53  [2]=>
54  string(5) "three"
55  ["four"]=>
56  array(2) {
57    [0]=>
58    string(5) "hello"
59    [1]=>
60    string(5) "world"
61  }
62}
63array(5) {
64  [0]=>
65  string(3) "one"
66  [1]=>
67  array(2) {
68    [0]=>
69    int(1)
70    [1]=>
71    int(2)
72  }
73  [2]=>
74  string(5) "three"
75  ["four"]=>
76  array(4) {
77    [0]=>
78    string(5) "hello"
79    [1]=>
80    string(5) "world"
81    [2]=>
82    string(4) "str1"
83    [3]=>
84    string(4) "str2"
85  }
86  [3]=>
87  array(2) {
88    [0]=>
89    int(6)
90    [1]=>
91    int(7)
92  }
93}
94Done
95