在PHP 中, array_intersect()函數用於找出多個數組中共同出現的值。它返回一個新數組,其中包含所有數組中存在的相同值。今天我們將探討如何使用這個函數,並進一步統計這些共同值在原始數組中各自出現的次數。
array_intersect()函數接受多個數組作為參數,返回一個包含多個數組交集部分的數組,即所有數組中都有出現的值。需要注意的是,它只是簡單地進行值的比較,而忽略了數組中元素的鍵名。
array_intersect(array $array1, array $array2, array ...$arrays): array
$array1, $array2, ...$arrays :要比較的一個或多個數組。
返回值:一個新數組,包含所有輸入數組中都有的值。
下面我們通過一個簡單的示例來展示如何使用array_intersect()找出多個數組中共同出現的值,並統計它們在原始數組中的出現次數。
<?php
// 定義三個數組
$array1 = array(1, 2, 3, 4, 5, 6);
$array2 = array(4, 5, 6, 7, 8);
$array3 = array(3, 4, 5, 9);
// 找出這三個數組中共同的值
$commonValues = array_intersect($array1, $array2, $array3);
// 輸出共同的值
echo "共同出現的值是:\n";
print_r($commonValues);
// 統計這些共同值在原始數組中的出現次數
echo "\n統計共同值的出現次數:\n";
foreach ($commonValues as $value) {
$count1 = count(array_keys($array1, $value));
$count2 = count(array_keys($array2, $value));
$count3 = count(array_keys($array3, $value));
echo "值 $value 出現在數組1中的次數:$count1\n";
echo "值 $value 出現在數組2中的次數:$count2\n";
echo "值 $value 出現在數組3中的次數:$count3\n";
}
?>
我們定義了三個數組$array1 , $array2 , $array3 。
使用array_intersect()函數來找出這三個數組中共同的值,結果保存在$commonValues中。
對於每個共同出現的值,我們使用array_keys()函數來找出它在每個原始數組中的位置,然後通過count()函數計算它的出現次數。
最終,我們輸出每個共同值在三個數組中的出現次數。
有時,我們可能需要處理一些包含URL 地址的數組。假設我們有多個數組,其中包含了不同的URL,我們可以通過array_intersect()函數找出共同的URL,然後統計每個URL 出現的次數。為了演示這個功能,下面是修改過的代碼,URL 中的域名已替換為m66.net :
<?php
// 定義三個數組,其中包含 URL
$array1 = array("https://m66.net/page1", "https://m66.net/page2", "https://m66.net/page3");
$array2 = array("https://m66.net/page3", "https://m66.net/page4", "https://m66.net/page5");
$array3 = array("https://m66.net/page2", "https://m66.net/page3", "https://m66.net/page6");
// 找出這三個數組中共同的 URL
$commonUrls = array_intersect($array1, $array2, $array3);
// 輸出共同的 URL
echo "共同出現的 URL 是:\n";
print_r($commonUrls);
// 統計這些共同 URL 的出現次數
echo "\n統計共同 URL 的出現次數:\n";
foreach ($commonUrls as $url) {
$count1 = count(array_keys($array1, $url));
$count2 = count(array_keys($array2, $url));
$count3 = count(array_keys($array3, $url));
echo "URL $url 出現在數組1中的次數:$count1\n";
echo "URL $url 出現在數組2中的次數:$count2\n";
echo "URL $url 出現在數組3中的次數:$count3\n";
}
?>
數組$array1 , $array2 , $array3包含了帶有m66.net域名的URL 地址。
使用array_intersect()函數找出三個數組中共同的URL 地址。
對每個共同的URL,使用array_keys()和count()函數來統計它在每個數組中的出現次數。