【发布时间】:2011-05-15 05:00:50
【问题描述】:
如何在不比较它们的键的情况下将一个数组附加到另一个数组?
$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, $b)应该完全符合您的要求,至少使用 PHP 5+。 -
您发布的所有输出都不是来自
array_merge();array_merge();的输出应该是您所需要的:print_r(array_merge($a,$b)); // outputs => Array ( [0] => a [1] => b [2] => c [3] => d ) -
我完全不同意“追加”这个词。追加实际上意味着一个数组的项目成为另一个(目标)数组的元素,该数组可能已经有一些元素,因此改变了目标数组。 Merge 分配一个新数组并复制两个数组的元素,而 append 实际上意味着重用目标数组元素而不需要额外的内存分配。
-
所有方法都在“用户贡献的笔记”[1]的页面[PHP-docs]中描述:php.net/manual/ru/function.array-push.php