📅  最后修改于: 2023-12-03 15:18:28.172000             🧑  作者: Mango
在 PHP 中,我们可以使用 in_array()
函数来在数组中查找某个特定的值。但是如何在数组中查找多个特定的值呢?下面我们将介绍几种实现方法。
如果要查找的值较少,可以简单粗暴地使用循环来遍历数组,逐个判断数组元素是否符合要求。代码示例如下:
<?php
$fruits = ['apple', 'banana', 'orange', 'peach'];
$search = ['banana', 'peach'];
foreach ($fruits as $fruit) {
if (in_array($fruit, $search)) {
echo "$fruit exists in the array.\n";
}
}
?>
输出:
banana exists in the array.
peach exists in the array.
array_intersect()
函数可以用于获取多个数组的交集,它返回一个包含所有输入数组中共同元素的新数组。如果某个数组中的元素不在其他数组中出现,则不包含在返回的新数组中。我们可以使用这个函数来实现在数组中查找多个特定的值。
<?php
$fruits = ['apple', 'banana', 'orange', 'peach'];
$search = ['banana', 'peach'];
$result = array_intersect($fruits, $search);
if (count($result) > 0) {
echo 'The following fruits exist in the array: ' . implode(', ', $result) . "\n";
} else {
echo 'None of the searched fruits exist in the array.' . "\n";
}
?>
输出:
The following fruits exist in the array: banana, peach
array_diff()
函数可以用于获取第一个数组中不包含在其他输入数组中的元素,即差集。我们可以将原数组和要查找的值组成一个新数组,然后取新数组和原数组的差集,即可得到不存在于原数组中的值。
<?php
$fruits = ['apple', 'banana', 'orange', 'peach'];
$search = ['banana', 'peach'];
$result = array_diff([$fruits, $search], $fruits);
if (count($result) > 0) {
echo 'The following fruits exist in the array: ' . implode(', ', $result) . "\n";
} else {
echo 'None of the searched fruits exist in the array.' . "\n";
}
?>
输出:
The following fruits exist in the array: banana, peach
以上就是在 PHP 中查找数组中多个特定值的几种方法。根据不同的实际情况,选择不同的方法可以达到更好的性能效果。