php數(shù)組合并 array_merge-php函數(shù)

字號:


    php有數(shù)組合并函數(shù),挺好用的,數(shù)組合并函數(shù)為array_merge
    看語法
    $newarray = array_merge($array1,$array2.....);
    英文merge 合并的意思。
    說明一下
    1.數(shù)組合并的參數(shù)$array1 ...可以是一個,可以是多個,如果是一個數(shù)組則是要重新排序,如果是數(shù)字索引將從0到n重新排列
    如果是key索引,則有重復采用2覆蓋
    如果是多個數(shù)組則表示合并
    2.對于相同的key值,最后的value值將覆蓋前面的value
    3.如果想保存原來的索引,采用加法的形式傳遞數(shù)組即可。$newarr=$oldarr1+$oldarr2;
    需要注意的一點:
    看例子學習php數(shù)組差異比較array_diff
    例子1:有索引的數(shù)組的合并
    <?php
    $array = array("forasp"=>".cn","key"=>"1","temp"=>2);
    $array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);
    $forasp = array_merge($array,$array1);
    print_r($forasp);
    ?>
    輸出結果
    Array
    Array
    (
    [forasp] => www.forasp.cn
    [key] => 1
    [temp] => 3
    )
    這里注意一點,進行相同key的合并
    例子2 無索引數(shù)組
    <?php
    $old1forasp = array("site","域名","www.forasp.cn");
    $arrayforasp = array("site","forasp.cn",);
    $forasp = array_merge($old1forasp,$arrayforasp);
    print_r($forasp);
    ?>
    輸出結果:
    Array
    (
    [0] => site
    [1] => 域名
    [2] => www.forasp.cn
    [3] => site
    [4] => forasp.cn
    )
    無索引的,將value逐個列出,并進行數(shù)字索引
    例子3 當有二維數(shù)組合并,看其返回值
    <?php
    $oldforasp = array("site","域名","forasp.cn");
    $array = array();
    $arrayforasp1=array("site",$oldforasp);
    $arrayforasp2=array("域名",$array);
    $forasp = array_merge($arrayforasp1,$arrayforasp2);
    print_r($forasp);
    ?>
    輸出結果
    Array
    (
    [0] => site
    [1] => Array
    (
    [0] => site
    [1] => 域名
    [2] => forasp.cn
    )
    [2] => 域名
    [3] => Array
    (
    )
    )
    <?php
    $oldforasp = array("site","域名","forasp.cn");
    $array = array();
    $arrayforasp1=array("site",$oldforasp);
    $arrayforasp2=array("域名",$array);
    $forasp = array_merge($arrayforasp1,$arrayforasp2);
    print_r($forasp);
    ?>
    二維數(shù)組中,如果數(shù)組不同,則不合并,就算數(shù)組中的值相同也不合并
    例子3 看跳索引合并
    <?php
    $arr = array(1=>"a",3=>"b");
    $temp = array_merge($arr);
    print_r($temp);
    ?>
    結果
    Array
    (
    [0] => a
    [1] => b
    )
    數(shù)字索引重新排列。
    這就是數(shù)組合并。
    例子4 在看一下+ 的效果
    <?php
    $arr = array(1=>"a",3=>"b");
    $arr1 = array(2=>"c");
    $new = $arr+$arr1;
    print_r($arr);
    ?>
    結果
    Array
    (
    [1] => a
    [3] => b
    [2] => c
    )
    位置是順序的,但是索引還是原來的~