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
为空,这将导致致命错误