我有两个关联数组我希望从中创建一个数组 E.g
a(a=>1
b=>3
f=>5
)
b(a=>4
e=>7
f=>9
)
输出必须
c(
a=>1
b=>3
f=>5
a=>4
e=>7
f=>9
)
我是php的新手
答案 0 :(得分:0)
使用array_merge()。结果数组的同一个键不能有多个条目,因此第二个a =>有些东西会覆盖第一个。
答案 1 :(得分:0)
使用+
operator返回两个数组的并集。
新数组首先由左参数构造,因此$a + $b
获取$ a的元素,然后将$b
的元素与它们合并,而不用覆盖重复的键。如果键是数字,则仅附加第二个数组。
+
运算符和函数array_merge之间的差异是,如果后面的参数包含该键,则数组合并将覆盖重复的键。文档更好:
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加。
答案 2 :(得分:0)
如果密钥不同,请使用array_merge()
<?php
$a1=array("a"=>"Horse","b"=>"Cat");
$a2=array("c"=>"Cow");
print_r(array_merge($a1,$a2));
?>
输出:
Array ( [a] => Horse [b] => Cat [c] => Cow )
如果密钥相同,请使用array_merge_recursive()
<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>
输出:
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)