3 回答
TA贡献1831条经验 获得超10个赞
array_diff应该可以工作。
<?php
$array1 = array ("apple","banana","papaya","watermelon","avocado");
$array2 = array ("apple","avocado");
$array_diff = array_diff($array1, $array2);
print_r($array_diff);
?>
演示
输出将。
Array ( [1] => banana [2] => papaya [3] => watermelon)
您也可以尝试以下解决方案。结果将是相同的。. 使用in_array检查第一个数组值是否不在第二个测试器中,该值是否在新数组“final_result”中以获取结果。
in_array 支持(PHP 4、PHP 5、PHP 7)
$array1 = array ("apple","banana","papaya","watermelon","avocado");
$array2 = array ("apple","avocado");
$final_result = array();
foreach($array1 as $value){
if(!in_array($value, $array2)){
$final_result[] = $value;
}
}
print_r($final_result);
?>
TA贡献1804条经验 获得超2个赞
在array_filter()的帮助下,我们可以轻松完成。它使用回调函数过滤数组的元素。
array_filter()迭代输入数组中的每个值,将它们传递给回调函数。如果回调函数返回 true,则输入的当前值将返回到结果数组中。保留数组键。
这里我们使用了use($array2)子句来访问回调函数内部的外部变量。$array2需要过滤掉$array1。
$array1 = array("apple","banana","papaya","watermelon","avocado");
$array2 = array("apple","avocado");
$array1 = array_filter($array1, function($item) use($array2) { return !in_array($item, $array2); });
print '<pre>';
print_r($array1);
- 3 回答
- 0 关注
- 159 浏览
添加回答
举报