php合并2個數(shù)字鍵數(shù)組的值的程序

字號:


    php中數(shù)組合并array_merge是最靠得住的函數(shù)了,下文我們在利用array_merge函數(shù)合并時主要是對于兩個數(shù)組的鍵值為數(shù)字進行處理。
    先要了解一個基礎知識點
    php中兩個數(shù)組合并可以使用+或者array_merge,但之間還是有區(qū)別的,而且這些區(qū)別如果了解不清楚項目中會要命的!
    主要區(qū)別是兩個或者多個數(shù)組中如果出現(xiàn)相同鍵名,鍵名分為字符串或者數(shù)字,需要注意
    1)鍵名為數(shù)字時,array_merge()后面的值將不會覆蓋原來的值,而是附加到后面,但+合并數(shù)組則會把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
    2)鍵名為字符串時,array_merge()此時會覆蓋掉前面相同鍵名的值,但+仍然把最先出現(xiàn)的值作為最終結果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)。
    代碼如下:
    $a = array('a', 'b');
    $b = array('c', 'd');
    $c = $a + $b;
    var_dump($a);
    var_dump(array_merge($a, $b));
    //輸出:
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    2 => string 'c' (length=1)
    3 => string 'd' (length=1)
    ++++++++++++++++++++++++++++++++++++++++++
    $a = array(
    0 => 'a',
    1 => 'b'
    );
    $b = array(
    0 => 'c',
    1 => 'b'
    );
    $c = $a + $b;
    var_dump($c);
    var_dump(array_merge($a, $b));
    //輸出:
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    2 => string 'c' (length=1)
    3 => string 'b' (length=1)
    ++++++++++++++++++++++++++++++++++++++++++
    $a = array('a', 'b');
    $b = array(
    '0' => 'c',
    1 => 'b'
    );
    $c = $a + $b;
    var_dump($c);
    var_dump(array_merge($a, $b));
    //輸出:
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    2 => string 'c' (length=1)
    3 => string 'b' (length=1)
    ++++++++++++++++++++++++++++++++++++++++++
    $a = array(
    0 => 'a',
    1 => 'b'
    );
    $b = array(
    '0' => 'c',
    '1' => 'b'
    );
    $c = $a + $b;
    var_dump($c);
    var_dump(array_merge($a, $b));
    輸出:
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    array
    0 => string 'a' (length=1)
    1 => string 'b' (length=1)
    2 => string 'c' (length=1)
    3 => string 'b' (length=1)
    好了講到這么多了我們來看看下合并2個數(shù)字鍵數(shù)組的值
    代碼如下:
    <?php
    /**
    * php合并2個數(shù)字鍵數(shù)組的值
    *
    * @param array $arr1
    * @param array $arr2
    * @return array
    * @author
    */
    function new_array_merge($arr1, $arr2)
    {
    $arr = array_flip($arr1) + array_flip($arr2);
    return array_keys($arr);
    }
    $arr1 = array('aa', 'bb', 'cc');
    $arr2 = array('aa2', 'bb', 'cc2');
    $arr = new_array_merge($arr1, $arr2);
    print_r($arr);
    輸出:
    array
    (
    [0] => aa
    [1] => bb
    [2] => cc
    [3] => aa2
    [4] => cc2
    )