俗话说,“条条大路通罗马”。
使用foreach()
更为简洁的方法是使用foreach
循环,利用in_array()
函数检查一个数组,而不是逐个检查每个水果。
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
foreach ($fruits as $key=>$fruit) {
if (in_array($fruit, ['apple', 'orange', 'melon', 'banana'])) {
unset($fruits[$key]);
}
}
print_r($fruits);
使用array_filter()
一种更加“高级”的方法是使用array_filter()
函数,可以将其写成一行代码。
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$fruits = array_filter($fruits, function($fruit) {
return !in_array($fruit, ['apple', 'orange', 'melon', 'banana']);
});
print_r($fruits);
使用array_diff()
更加简单的方法是使用 array_diff()
函数,它会查找仅存在于其中一个数组中的所有元素(本质上删除重复项)。
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$remove = ['apple', 'orange', 'melon', 'banana'];
$result = array_diff($fruits, $remove);
使用array_intersect()
array_intersect
也是一种与array_diff()
相反的方式。它会找到两个数组中都存在的元素,并返回这些元素。
$fruits = ['apple', 'orange', 'melon', 'banana', 'pineapple'];
$find = ['pineapple'];
$result = array_intersect($fruits, $find);