色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php 兩個數組差集

郭娜娜1年前7瀏覽0評論

在開發過程中,很常見的情況就是需要對數組進行運算,如兩個數組求交集、并集、差集等等。今天我們來了解一下PHP中兩個數組差集的操作。

先來舉個例子,假設有兩個數組:

$arr1 = array('apple', 'banana', 'orange', 'lemon');
$arr2 = array('banana', 'lemon', 'watermelon', 'grape');

這里我們需要得到$arr1中有而在$arr2中沒有的元素,即差集。PHP中提供了一個函數array_diff()來實現這個功能。

$result = array_diff($arr1, $arr2);
print_r($result);

輸出結果為:

Array ( [0] => apple [1] => orange )

可見,array_diff()返回的是在第一個數組($arr1)中有但第二個數組($arr2)中沒有的元素。

如果我們需要對多個數組進行差集操作,可以通過傳遞多個參數來實現。假設有三個數組:

$arr1 = array('apple', 'banana', 'orange', 'lemon');
$arr2 = array('banana', 'lemon', 'watermelon', 'grape');
$arr3 = array('orange', 'grape');

這里我們需要得到在$arr1中,但不在$arr2和$arr3中的元素。同樣可以使用array_diff():

$result = array_diff($arr1, $arr2, $arr3);
print_r($result);

輸出結果為:

Array ( [0] => apple )

可見,array_diff()返回的是在第一個數組($arr1)中有但其他數組($arr2、$arr3)中沒有的元素。

需要注意的是,array_diff()默認對元素進行松散比較,即使用==運算符。如果需要使用全等比較,即使用===運算符,可以傳遞一個比較函數作為array_diff()的最后一個參數。比較函數返回值為0的元素將被處理為相等。

function strict_compare($a, $b)
{
if ($a === $b) {
return 0;
} 
return ($a > $b) ? 1 : -1;
}
$arr1 = array(1, 2, 3, 4);
$arr2 = array("1", "2", "3", "4");
$result = array_diff($arr1, $arr2);
print_r($result); // 輸出:Array ( )
$result = array_diff($arr1, $arr2, 'strict_compare');
print_r($result); // 輸出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

以上是PHP中兩個數組差集的操作介紹。在開發過程中,差集操作經常會被使用到,希望各位讀者能夠掌握相關技能。