在 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() 函数来统计它在每个数组中的出现次数。