4.7. Appending One Array to Another
Problem
You want to combine two arrays into one.
Solution
Use array_merge( ):
$garden = array_merge($fruits, $vegetables);
Discussion
The
array_merge( )
function works with both predefined arrays
and arrays defined in place using array( ):
$p_languages = array('Perl', 'PHP');
$p_languages = array_merge($p_languages, array('Python'));
print_r($p_languages);
Array
(
[0] => PHP
[1] => Perl
[2] => Python
)Accordingly, merged arrays can be either preexisting arrays, as with
$p_languages, or anonymous arrays, as with
array('Python').
You can’t use array_push( )
,
because PHP won’t automatically flatten out the
array into series of independent variables, and
you’ll end up with a nested array. Thus:
array_push($p_languages, array('Python'));
print_r($p_languages);
Array
(
[0] => PHP
[1] => Perl
[2] => Array
(
[0] => Python
)
)Merging arrays with only numerical keys causes the arrays to get renumbered, so values aren’t lost. Merging arrays with string keys causes the second array to overwrite the value of any duplicated keys. Arrays with both types of keys exhibit both types of behavior. For example:
$lc = array('a', 'b' => 'b'); // lower-case letters as values
$uc = array('A', 'b' => 'B'); // upper-case letters as values
$ac = array_merge($lc, $uc); // all-cases?
print_r($ac);
Array
(
[0] => a
[b] => B
[1] => A
)The uppercase A has been renumbered from index 0 to index 1, to avoid a collision, and merged onto the end. The uppercase B has overwritten ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access