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

如何将一个数组追加到另一个数组而不进行比较?

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

最后它应该是: Array( [0]=>a [1]=>b [2]=>c [3]=>d )如果我使用类似[]array_push东西,会导致其中一个结果:

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

它应该是一些东西,这样做,但以一种更优雅的方式:

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

array_merge是优雅的方式:

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

做的事情如下:

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

将无法正常工作,因为+运算符实际上并没有合并它们。 如果他们$a$b具有相同的密钥,它将不会执行任何操作。


为什么不使用

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

你为什么不想使用这种正确的内置方法。


另一种在PHP 5.6+中执行此操作的方法是使用...令牌

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

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

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

这也适用于任何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');

警告虽然,如果数组$b为空,这将导致致命错误

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

上一篇: PHP append one array to another (not array

下一篇: How to add elements to an empty array in PHP?