6.5.17 PHP拆分、合并、分解與結合數組函數2

6.5.17 PHP拆分、合并、分解與結合數組函數2

拆分、合并、分解與結合數組

array_slice -- 從數組中取出一段
語法: array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )
array_slice() 返回根據 offset 和 length 參數所指定的 array 數組中的一段序列。
如果 offset 非負,則序列將從 array 中的此偏移量開始。如果 offset 為負,則序列將從 array 中距離末端這么遠的地方開始。
如果給出了 length 并且為正,則序列中將具有這么多的單元。如果給出了 length 并且為負,則序列將終止在距離數組末端這么遠的地方。如果省略,則序列將從 offset 開始一直到 array 的末端。

array_splice -- 把數組中的一部分去掉并用其它值取代
語法:array array_splice ( array &input, int offset [, int length [, array replacement]] )
array_splice() 把 input 數組中由 offset 和 length 指定的單元去掉,如果提供了 replacement 參數,則用 replacement 數組中的單元取代。返回一個包含有被移除單元的數組。注意 input 中的數字鍵名不被保留。
如果 offset 為正,則從 input 數組中該值指定的偏移量開始移除。如果 offset 為負,則從 input 末尾倒數該值指定的偏移量開始移除。
如果省略 length,則移除數組中從 offset 到結尾的所有部分。
如果給出了 replacement 數組,則被移除的單元被此數組中的單元替代。

array_combine -- 創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值
語法:array array_combine ( array keys, array values )
返回一個 array,用來自 keys 數組的值作為鍵名,來自 values 數組的值作為相應的值。
如果兩個數組的單元數不同或者數組為空時返回 FALSE。

?rray_merge -- 合并一個或多個數組
–語法: array array_merge ( array array1 [, array array2 [, array ...]] )
–array_merge() 將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的后面。返回作為結果的數組。
–如果輸入的數組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
–如果只給了一個數組并且該數組是數字索引的,則鍵名會以連續方式重新索引。
?
array_intersect -- 計算數組的交集
語法 array array_intersect ( array array1, array array2 [, array ...] )
array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意鍵名保留不變。

array_diff -- 計算數組的差集
語法:array array_diff ( array array1, array array2 [, array ...] )
array_diff() 返回一個數組,該數組包括了所有在 array1 中但是不在任何其它參數數組中的值。注意鍵名保留不變。

例 1.php

<?php

    //下標相同的會覆蓋, 是前面覆蓋后面的
    
    $a = array("a", "b", "c");
    $b = array(5=>10, 11, 12);

    $c = $a + $b;

    var_dump($c);

例 2.php

<?php

    //下標相同的會覆蓋, 是前面覆蓋后面的
    
    $a = array("a", "one"=>"b", "c");
    $b = array(10, "one"=>11, 12);

    $c = array_merge($a , $b);

    var_dump($c);

例3.php

<?php

    //下標相同的會覆蓋, 是前面覆蓋后面的
    
    $a = array("a", 5=>"b", "c");
    $b = array(10, "one"=>11, 12);

    $c = array_merge($a);

    var_dump($c);

例5.php

<?php
    $a = array(10, 11, 12, 13, 14);
    $b = array(5, 6, 12, 15, 14);

    

    print_r(array_intersect($a, $b));

例 test.php

<?php
    $a = array(5, 6, 10, 11, 12, 13, 14);
    $b = array(5, 6, 12, 15, 14);


    $min = (count($a) > count($b)) ? count($b) : count($a);

    
    $narr = array();
    for($i=0; $i < $min; $i++) {
        if($a[$i]==$b[$i]) {
            $narr[] = $a[$i];
        }else{
            break;
        }
    }


    //print_r(array_intersect($a, $b));

例 test.php

<?php
    $a = array(5, 6, 10, 11, 12, 13, 14);
    $b = array(5, 6, 12, 15, 14);


    print_r(array_diff($a, $b));
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容