123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762 |
- --TEST--
- Test array_merge() function
- --INI--
- precision=14
- --FILE--
- <?php
- /* Prototype: array array_merge(array $array1 [, array $array2 [, array $...]]);
- Description: Merge one or more arrays
- */
- echo "\n*** Testing array_merge() basic functionality ***";
- $begin_array = array(
- array(),
- array( 1 => "string"),
- array( "" => "string"),
- array( -2.44444 => 12),
- array( "a" => 1, "b" => -2.344, "b" => "string", "c" => NULL, "d" => -2.344),
- array( 4 => 1, 3 => -2.344, "3" => "string", "2" => NULL,1 => -2.344),
- array( NULL, 1.23 => "Hi", "string" => "hello",
- array("" => "World", "-2.34" => "a", "0" => "b"))
- );
- $end_array = array(
- array(),
- array( 1 => "string"),
- array( "" => "string"),
- array( -2.44444 => 12),
- array( "a" => 1, "b" => -2.344, "b" => "string", "c" => NULL, "d" => -2.344),
- array( 4 => 1, 3 => -2.344, "3" => "string", "2" => NULL, 1=> -2.344),
- array( NULL, 1.23 => "Hi", "string" => "hello",
- array("" => "World", "-2.34" => "a", "0" => "b"))
- );
- /* loop through to merge two arrays */
- $count_outer = 0;
- foreach($begin_array as $first) {
- echo "\n\n--- Iteration $count_outer ---";
- $count_inner = 0;
- foreach($end_array as $second) {
- echo "\n-- Inner iteration $count_inner of Iteration $count_outer --\n";
- $result = array_merge($first, $second);
- print_r($result);
- $count_inner++;
- }
- $count_outer++;
- }
- echo "\n*** Testing array_merge() with three or more arrays ***\n";
- var_dump( array_merge( $end_array[0],
- $end_array[5],
- $end_array[4],
- $end_array[6]
- )
- );
- var_dump( array_merge( $end_array[0],
- $end_array[5],
- array("array on fly"),
- array("nullarray" => array())
- )
- );
- echo "\n*** Testing single array argument ***\n";
- /* Empty array */
- var_dump(array_merge(array()));
- /* associative array with string keys, which will not be re-indexed */
- var_dump(array_merge($begin_array[4]));
- /* associative array with numeric keys, which will be re-indexed */
- var_dump(array_merge($begin_array[5]));
- /* associative array with mixed keys and sub-array as element */
- var_dump(array_merge($begin_array[6]));
- echo "\n*** Testing array_merge() with typecasting non-array to array ***\n";
- var_dump(array_merge($begin_array[4], (array)"type1", (array)10, (array)12.34));
- echo "\n*** Testing error conditions ***";
- /* Invalid arguments */
- var_dump(array_merge());
- var_dump(array_merge(100, 200));
- var_dump(array_merge($begin_array[0], $begin_array[1], 100));
- var_dump(array_merge($begin_array[0], $begin_array[1], $arr4));
- echo "Done\n";
- ?>
- --EXPECTF--
- *** Testing array_merge() basic functionality ***
- --- Iteration 0 ---
- -- Inner iteration 0 of Iteration 0 --
- Array
- (
- )
- -- Inner iteration 1 of Iteration 0 --
- Array
- (
- [0] => string
- )
- -- Inner iteration 2 of Iteration 0 --
- Array
- (
- [] => string
- )
- -- Inner iteration 3 of Iteration 0 --
- Array
- (
- [0] => 12
- )
- -- Inner iteration 4 of Iteration 0 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 0 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- )
- -- Inner iteration 6 of Iteration 0 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 1 ---
- -- Inner iteration 0 of Iteration 1 --
- Array
- (
- [0] => string
- )
- -- Inner iteration 1 of Iteration 1 --
- Array
- (
- [0] => string
- [1] => string
- )
- -- Inner iteration 2 of Iteration 1 --
- Array
- (
- [0] => string
- [] => string
- )
- -- Inner iteration 3 of Iteration 1 --
- Array
- (
- [0] => string
- [1] => 12
- )
- -- Inner iteration 4 of Iteration 1 --
- Array
- (
- [0] => string
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 1 --
- Array
- (
- [0] => string
- [1] => 1
- [2] => string
- [3] =>
- [4] => -2.344
- )
- -- Inner iteration 6 of Iteration 1 --
- Array
- (
- [0] => string
- [1] =>
- [2] => Hi
- [string] => hello
- [3] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 2 ---
- -- Inner iteration 0 of Iteration 2 --
- Array
- (
- [] => string
- )
- -- Inner iteration 1 of Iteration 2 --
- Array
- (
- [] => string
- [0] => string
- )
- -- Inner iteration 2 of Iteration 2 --
- Array
- (
- [] => string
- )
- -- Inner iteration 3 of Iteration 2 --
- Array
- (
- [] => string
- [0] => 12
- )
- -- Inner iteration 4 of Iteration 2 --
- Array
- (
- [] => string
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 2 --
- Array
- (
- [] => string
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- )
- -- Inner iteration 6 of Iteration 2 --
- Array
- (
- [] => string
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 3 ---
- -- Inner iteration 0 of Iteration 3 --
- Array
- (
- [0] => 12
- )
- -- Inner iteration 1 of Iteration 3 --
- Array
- (
- [0] => 12
- [1] => string
- )
- -- Inner iteration 2 of Iteration 3 --
- Array
- (
- [0] => 12
- [] => string
- )
- -- Inner iteration 3 of Iteration 3 --
- Array
- (
- [0] => 12
- [1] => 12
- )
- -- Inner iteration 4 of Iteration 3 --
- Array
- (
- [0] => 12
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 3 --
- Array
- (
- [0] => 12
- [1] => 1
- [2] => string
- [3] =>
- [4] => -2.344
- )
- -- Inner iteration 6 of Iteration 3 --
- Array
- (
- [0] => 12
- [1] =>
- [2] => Hi
- [string] => hello
- [3] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 4 ---
- -- Inner iteration 0 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 1 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- [0] => string
- )
- -- Inner iteration 2 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- [] => string
- )
- -- Inner iteration 3 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- [0] => 12
- )
- -- Inner iteration 4 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- )
- -- Inner iteration 6 of Iteration 4 --
- Array
- (
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 5 ---
- -- Inner iteration 0 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- )
- -- Inner iteration 1 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [4] => string
- )
- -- Inner iteration 2 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [] => string
- )
- -- Inner iteration 3 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [4] => 12
- )
- -- Inner iteration 4 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [4] => 1
- [5] => string
- [6] =>
- [7] => -2.344
- )
- -- Inner iteration 6 of Iteration 5 --
- Array
- (
- [0] => 1
- [1] => string
- [2] =>
- [3] => -2.344
- [4] =>
- [5] => Hi
- [string] => hello
- [6] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- --- Iteration 6 ---
- -- Inner iteration 0 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- -- Inner iteration 1 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [3] => string
- )
- -- Inner iteration 2 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [] => string
- )
- -- Inner iteration 3 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [3] => 12
- )
- -- Inner iteration 4 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [a] => 1
- [b] => string
- [c] =>
- [d] => -2.344
- )
- -- Inner iteration 5 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [3] => 1
- [4] => string
- [5] =>
- [6] => -2.344
- )
- -- Inner iteration 6 of Iteration 6 --
- Array
- (
- [0] =>
- [1] => Hi
- [string] => hello
- [2] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- [3] =>
- [4] => Hi
- [5] => Array
- (
- [] => World
- [-2.34] => a
- [0] => b
- )
- )
- *** Testing array_merge() with three or more arrays ***
- array(12) {
- [0]=>
- int(1)
- [1]=>
- string(6) "string"
- [2]=>
- NULL
- [3]=>
- float(-2.344)
- ["a"]=>
- int(1)
- ["b"]=>
- string(6) "string"
- ["c"]=>
- NULL
- ["d"]=>
- float(-2.344)
- [4]=>
- NULL
- [5]=>
- string(2) "Hi"
- ["string"]=>
- string(5) "hello"
- [6]=>
- array(3) {
- [""]=>
- string(5) "World"
- ["-2.34"]=>
- string(1) "a"
- [0]=>
- string(1) "b"
- }
- }
- array(6) {
- [0]=>
- int(1)
- [1]=>
- string(6) "string"
- [2]=>
- NULL
- [3]=>
- float(-2.344)
- [4]=>
- string(12) "array on fly"
- ["nullarray"]=>
- array(0) {
- }
- }
- *** Testing single array argument ***
- array(0) {
- }
- array(4) {
- ["a"]=>
- int(1)
- ["b"]=>
- string(6) "string"
- ["c"]=>
- NULL
- ["d"]=>
- float(-2.344)
- }
- array(4) {
- [0]=>
- int(1)
- [1]=>
- string(6) "string"
- [2]=>
- NULL
- [3]=>
- float(-2.344)
- }
- array(4) {
- [0]=>
- NULL
- [1]=>
- string(2) "Hi"
- ["string"]=>
- string(5) "hello"
- [2]=>
- array(3) {
- [""]=>
- string(5) "World"
- ["-2.34"]=>
- string(1) "a"
- [0]=>
- string(1) "b"
- }
- }
- *** Testing array_merge() with typecasting non-array to array ***
- array(7) {
- ["a"]=>
- int(1)
- ["b"]=>
- string(6) "string"
- ["c"]=>
- NULL
- ["d"]=>
- float(-2.344)
- [0]=>
- string(5) "type1"
- [1]=>
- int(10)
- [2]=>
- float(12.34)
- }
- *** Testing error conditions ***
- Warning: array_merge() expects at least 1 parameter, 0 given in %s on line %d
- NULL
- Warning: array_merge(): Argument #1 is not an array in %s on line %d
- NULL
- Warning: array_merge(): Argument #3 is not an array in %s on line %d
- NULL
- Notice: Undefined variable: arr4 in %s on line %d
- Warning: array_merge(): Argument #3 is not an array in %s on line %d
- NULL
- Done
|