【发布时间】:2012-01-31 06:09:46
【问题描述】:
所以这让我很困扰。
我有两个数组:
$array1 = array('[param1]' ,'demo' ,'[param2]' ,'some' ,'[param3]');
$array2 = array('value1' ,'demo' ,'value2' ,'some' ,'value3');
现在我想比较这两个数组,并删除所有重复值。
最后,我想要这两个数组,但其中没有“演示”和“某些”值。
我想从数组中删除所有具有相同索引键和值的值。
数组将始终具有相同数量的值和索引,我只想比较它们并从它们中删除具有相同索引键和值的条目。
我现在正在做这样的事情:
$clean1 = array();
$clean2 = array();
foreach($array1 as $key => $value)
{
if($value !== $array2[$key])
{
$clean1[$key] = $value;
$clean2[$key] = $array2[$key];
}
}
var_export($clean1);
echo "<br />";
var_export($clean2);
这行得通!但我想知道有没有其他方法可以做到这一点?也许不使用 foreach 循环?有没有更优雅的方式来做到这一点?
【问题讨论】:
-
你能定义什么是“优雅”吗?我认为这里没有问题...
-
这总是需要线性搜索。在这方面,您的解决方案是最有效的解决方案。
-
这个问题不清楚,因为minimal reproducible example 的质量太差了。
I want to remove all values from array-s that have the same index key and value.的逻辑语句在样本数据中没有得到很好的体现。这导致发布不适当尊重索引值关系的答案。