Php 如何确定一个数组中不存在于另一个数组中的元素?
在Ruby中,我可以做到这一点:Php 如何确定一个数组中不存在于另一个数组中的元素?,php,arrays,Php,Arrays,在Ruby中,我可以做到这一点: fruit = ['banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava'] citrus = ['orange','lemon','lime','tangerine'] others = fruit - citrus 还有一些则含有大量非柑橘类水果 如何在PHP中实现这一点 $fruit = array('banana','apple','tangerine','o
fruit = ['banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava']
citrus = ['orange','lemon','lime','tangerine']
others = fruit - citrus
还有一些则含有大量非柑橘类水果
如何在PHP中实现这一点
$fruit = array('banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava');
$citrus = array('orange','lemon','lime','tangerine');
$others = # NOW WHAT ?????
我是否需要迭代$citrus中的每个项,并在$fruit中找到它的偏移量(如果它存在于该数组中),然后取消设置它,然后使用数组_值来修复数组的索引?还是有一种更简单、更不容易出错的方法
请注意:我不是在寻找数组的名称。我在找一个工作。这一问题最初是作为询问前者的问题的重复而结束的 是的,有这样一种方法:
$others = array_diff($fruit, $citrus);
这将给您留下:
Array
(
[0] => banana
[1] => apple
[6] => kiwi
[7] => mango
[8] => guava
)
这似乎是从其他水果中减去柑橘类水果后的预期余数。您可以使用数组_diff
输出
array
0 => string 'banana' (length=6)
1 => string 'apple' (length=5)
6 => string 'kiwi' (length=4)
7 => string 'mango' (length=5)
8 => string 'guava' (length=5)
您可以使用:
您需要使用来排列索引。看到它在行动吗
$others将包含以下值:
Array
(
[0] => banana
[1] => apple
[6] => kiwi
[7] => mango
[8] => guava
)
这可以由和完成
及
你的回答和爸爸的回答一样好,相隔一秒钟。你的是前一秒,给了我一个链接。。。我不确定这是否是决定授予谁荣誉的完美标准,但我没有更好的标准。@Baba因为这是我的答案,我有许可证。你是对的,它有效,不管名字和文件!建议它对阵列进行差异化处理。事实上,它完全按照你说的做。如果是我,它仍然做我想要的。我希望有一个差异也会以某种方式提到这一差异。这个函数最好命名为array_减法或类似的东西。为什么会有向下的投票?也许是同一个人错误地结束了这个问题?是那些没有花时间去理解这个问题的人投了反对票,他们无知地结束了这个问题,还是那些愤怒的PHP开发人员想要惩罚任何提到Ruby的人?不管怎样,他们都是毫无道理的。
$others = array_merge(array_diff($fruit, $citrus));
Array
(
[0] => banana
[1] => apple
[6] => kiwi
[7] => mango
[8] => guava
)
$filter1 = "red,green,blue,yellow";
$parts1 = explode(',', $filter1);
$filter2 = "red,green,blue";
$parts2 = explode(',', $filter2);
$result = array_intersect($parts1 , $parts2 );
print_r($result);
$result = array_diff($parts1 , $parts2 );
print_r($result);