Php array_push()和array_merge()之间有什么区别?

Php array_push()和array_merge()之间有什么区别?,php,arrays,Php,Arrays,我使用这两个函数将这两个元素添加到一个新数组中array\u push()和array\u merge() 现在我的问题是这两个函数在基于功能的方面的主要区别是什么。我是PHP新手。 <?php $stack = array("foo", "bar"); array_push($stack, "bar2", "foo2"); print_r($stack); ?> 将一个或多个元素像堆栈一样推送到数组上 所以 变成 Array ( [0] => 1 [1] =

我使用这两个函数将这两个元素添加到一个新数组中
array\u push()
array\u merge()

现在我的问题是这两个函数在基于功能的方面的主要区别是什么。我是PHP新手。

<?php
$stack = array("foo", "bar");
array_push($stack, "bar2", "foo2");
print_r($stack);
?>
将一个或多个元素像堆栈一样推送到数组上

所以

变成

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => foo
    [1] => bar
    [2] => bar2
    [3] => foo2
)

<?php
$stack = array("foo", "bar");
array_push($stack, "bar2", "foo2");
print_r($stack);
?>
注意第三个数组

变成

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => foo
    [1] => bar
    [2] => bar2
    [3] => foo2
)

这两个函数都可以接受多个参数。

数组\u推送-将一个或多个元素推送到数组的末尾。它不会使用两个不同的数组,只是我们有一个数组,在数组\u合并中,我们有两个不同的数组,并将它们合并到一个数组中

$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
而数组_marge组合了两个不同的数组

array_push($array1, $array2);  
//is the same as  
$array1[] = $array2;
输出将是

//assuming $array2 has 4 elements 
array_push($array1, $array2[0], $array2[1], $array2[2], $array2[3]); 
//is the same as 
$array1 = array_merge($array1, $array2); 
//is the same as 
$array1[] = $array2[0]; 
$array1[] = $array2[1]; 
$array1[] = $array2[2]; 
$array1[] = $array2[3];
array_push()将每个参数添加到数组中:

$stack = array("orange" , "banana");
array_push($stack, "1", "2");
print_r($stack);
这将创建一个多维数组,我认为这不是您想要的。数组合并只是将它们放在一起形成一个大数组,我想这就是您所追求的。要使用array_push()获得相同的效果,必须执行以下操作:

Array
(
    [0] => orange
    [1] => banana
    [2] => 1
    [3] => 2
)

您可以参考PHP手册,但现在我将这样解释区别:

将数组视为堆栈,并将传递的变量推送到数组的末尾。数组的长度随着所推送的变量数量的增加而增加

示例

$array1 = array("color" => "yellow" , 0, 1);
$array2 = array("a" , "b" , "color" => "blue" , "shape" => "rectangle", 1);
$result = array_merge($array1 , $array2);
print_r($result);
上述示例将输出:

Array
(
    [color] => blue
    [0] => 0
    [1] => 1
    [2] => a
    [3] => b
    [shape] => rectangle
    [4] => 1
)

将一个或多个数组的元素合并在一起,以便将其中一个数组的值追加到前一个数组的末尾。它返回结果数组。如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值

但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加。带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号

示例

$array1 = array("color" => "yellow" , 0, 1);
$array2 = array("a" , "b" , "color" => "blue" , "shape" => "rectangle", 1);
$result = array_merge($array1 , $array2);
print_r($result);
上述示例将输出:

Array
(
    [color] => blue
    [0] => 0
    [1] => 1
    [2] => a
    [3] => b
    [shape] => rectangle
    [4] => 1
)

一个合并两个数组以创建第三个数组-
array\u merge
,另一个向现有数组添加一个新项
array\u push
。通过查看PHP文档中的相应函数,可以很容易地回答这个问题。
$array1 = array("color" => "yellow" , 0, 1);
$array2 = array("a" , "b" , "color" => "blue" , "shape" => "rectangle", 1);
$result = array_merge($array1 , $array2);
print_r($result);
Array
(
    [color] => blue
    [0] => 0
    [1] => 1
    [2] => a
    [3] => b
    [shape] => rectangle
    [4] => 1
)