php assoc数组

时间:2010-12-12 18:58:53

标签: php

我有两个关联数组我希望从中创建一个数组 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的新手

3 个答案:

答案 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
)