PHP append one array to another (not array

How to append one array to another without comparing their keys?

$a = array( 'a', 'b' );
$b = array( 'c', 'd' );

At the end it should be: Array( [0]=>a [1]=>b [2]=>c [3]=>d ) If I use something like [] or array_push , it will cause one of these results:

Array( [0]=>a [1]=>b [2]=>Array( [0]=>c [1]=>d ) )
//or
Array( [0]=>c [1]=>d )

It just should be something, doing this, but in a more elegant way:

foreach ( $b AS $var )
    $a[] = $var;

array_merge is the elegant way:

$a = array('a', 'b');
$b = array('c', 'd');
$merge = array_merge($a, $b); 
// $merge is now equals to array('a','b','c','d');

Doing something like:

$merge = $a + $b;
// $merge now equals array('a','b')

Will not work, because the + operator does not actually merge them. If they $a has the same keys as $b , it won't do anything.


Why not use

$appended = array_merge($a,$b); 

Why don't you want to use this, the correct, built-in method.


Another way to do this in PHP 5.6+ would be to use the ... token

$a = array('a', 'b');
$b = array('c', 'd');

array_push($a, ...$b);

// $a is now equals to array('a','b','c','d');

This will also work with any Traversable

$a = array('a', 'b');
$b = new ArrayIterator(array('c', 'd'));

array_push($a, ...$b);

// $a is now equals to array('a','b','c','d');

A warning though, this will cause a fatal error if array $b is empty

链接地址: http://www.djcxy.com/p/58942.html

上一篇: 如何在PHP的数组的开头插入一个项目?

下一篇: PHP将一个数组附加到另​​一个(而不是数组)