📜  php 在数组中查找多个值 - PHP (1)

📅  最后修改于: 2023-12-03 15:18:28.172000             🧑  作者: Mango

PHP 在数组中查找多个值

在 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() 函数

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() 函数

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 中查找数组中多个特定值的几种方法。根据不同的实际情况,选择不同的方法可以达到更好的性能效果。