PHP 怎么求數組交集?

2017-02-15 1924 0 編輯:深色多郎 來源:互聯網

在PHP中求數組的交集,我們可以與PHP給我們提供的現成函數:array_intersect(),其用法格式為:

array array_intersect(array array1,array array2[,arrayN…])

根據上述的語法格式,我們來寫一個例子:

<?php

$arr1 = array("Apple","Banana","Orange");

$arr2 = array("Pear","Apple","Grape");

$arr3 = array("Watermelon","Orange","Apple");

$intersection = array_intersect($arr1, $arr2, $arr3);

print_r($intersection);

// 輸出結果:

// Array ( [0] => Apple )

?>

本例子將返回在$fruit1數組中出現且在$fruit2和$fruit3中也出現的所有水果的名子。

使用array_intersect()函數時要注意:只有在兩個元素相等且具有相同的數據類型時,array_intersect()函數才會認為它們是相同的,否則不能進行交集計算。array_intersect()函數返回一個保留了鍵的數組,只由第一個數組中出現的且在其它數組中都出現的值組成。

若要求關聯數組的交集,請使用array_intersect_assoc()函數,給你個簡單的例子:

<?php

$arr1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");

$arr2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");

$arr3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");

$intersection = array_intersect_assoc($arr1, $arr2, $arr3);

print_r($intersection);

// 輸出:

// Array ( [red] => Apple )

?>

array_intersect_assoc()函數語法格式如下:

array array_intersect_assoc(array array1,array array2[,arrayN…])

 array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數組的鍵。因此,只有在第一個數組中出現,且在所有其他輸入數組中也出現的鍵/值對才返回到結果數組中。

php網站建設

本站文章均為深正網站建設摘自權威資料,書籍,或網絡原創文章,如有版權糾紛或者違規問題,請即刻聯系我們刪除,我們歡迎您分享,引用和轉載,但謝絕直接搬磚和抄襲!感謝...
關注深正互聯
我們猜你喜歡
七星彩头尾