Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何确定一个数组中不存在于另一个数组中的元素?_Php_Arrays - Fatal编程技术网

Php 如何确定一个数组中不存在于另一个数组中的元素?

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

在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','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);