Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将一个数组与另一个数组组合_Php_Arrays - Fatal编程技术网

Php 如何将一个数组与另一个数组组合

Php 如何将一个数组与另一个数组组合,php,arrays,Php,Arrays,我有两个数组array1和array2,我想将array2的所有元素添加到array1的末尾。数组1包含许多项 键是数字的,我不需要这种语法: array1 = array1 + array2 或 因为它减少了CPU时间(因为阵列创建了两次) 我想要的是: array1 . SomeAddFun(array2); // This will not create any new arrays 有什么办法吗?如果要将数据附加到现有数组中,则应使用 使用适当的参数,您可以将$array2的内容插入

我有两个数组array1和array2,我想将array2的所有元素添加到array1的末尾。数组1包含许多项

键是数字的,我不需要这种语法:

array1 = array1 + array2

因为它减少了CPU时间(因为阵列创建了两次)

我想要的是:

array1 . SomeAddFun(array2); // This will not create any new arrays

有什么办法吗?

如果要将数据附加到现有数组中,则应使用

使用适当的参数,您可以将
$array2
的内容插入/附加到
$array1
中,如下例所示

$array1 = array (1,2,3);
$array2 = array (4,5,6);

array_splice ($array1, count ($array1), 0, $array2);

print_r ($array1);
输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

您可以将
ArrayObject
append
函数一起使用:

$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
结果:

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
}
但不知道如何附加数组,因为它们似乎是作为“子数组”附加的,而不是作为整体的一部分


文档:

因为它会占用CPU时间(因为数组创建了两次)
。这是很小的,你不会注意到任何区别。这是针对流量大、阵列中有数千条记录的站点的。请看一下这个后基准测试阵列功能:好吧,看来
array\u splice
array\u merge
稍微快一点。如果每个程序员都能更好地进行优化,那么我们就可以节省能源,从而减少二氧化碳排放:)或者在“普通”数组上使用。推动一个数组将使用索引添加整个数组,而不是合并它的索引elements@user774250,我只是在事后才注意到,这就是为什么我在答案的底部添加了文本。我留下了我的答案,因为这仍然是一种将内容附加到数组中的方法,可能对其他人有用。这就是我想要的。谢谢。@user774250如果您对答案感到满意,请不要忘记将答案标记为已接受。实际上,即使您没有看到答案,但正在内部创建第三个哈希表。我认为这种转变只是一点点,而且可能更快,因为它没有这样复杂的函数逻辑。实际上,您需要测试这两个选项中哪一个在具体使用中更快。@hakre:似乎
array\u splice
array\u merge
稍快@在您的测试用例中使用更大的数组,您会注意到当使用更大的集合时,
array\u splice
要快得多。
object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
}