diff options
Diffstat (limited to 'ext/standard/tests/array/array_merge.phpt')
-rw-r--r-- | ext/standard/tests/array/array_merge.phpt | 762 |
1 files changed, 762 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_merge.phpt b/ext/standard/tests/array/array_merge.phpt new file mode 100644 index 0000000..b718386 --- /dev/null +++ b/ext/standard/tests/array/array_merge.phpt @@ -0,0 +1,762 @@ +--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 argumens */ +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 |