【发布时间】:2014-08-01 06:44:17
【问题描述】:
这里是新手,所以我对array_intersect函数有问题。我正在将两个数组与交集进行比较,但我得到了两次结果。例如:2个数组
$array1 = array(apple, orange, orange, apricot, melon, watermelon);
$array2 = array(apple, orange);
$result = array_intersect($array1, $array2); 这会返回:
$result = array(apple, orange, orange);
但我想要这个:
$result = array(apple, orange);
我希望这每个返回一次 apple 和 orange。目前它返回苹果,然后是橙色,然后是另一个橙色。是我遗漏了什么还是我只是使用了错误的功能。
编辑:根据答案,我必须澄清这一点。如果第二个数组是
$array1 = array(apple, orange, orange, apricot, melon, watermelon);
$array2 = array(apple, orange, orange);
我希望结果有 2 个橙子,所以 array_unique 不会这样做。
$result = array(apple, orange, orange);
【问题讨论】:
-
在结果数组中使用
array_unique -
@Ghost 我不能,请参阅编辑以进行澄清:D
-
我看不出有什么意义,不久前您想分别返回一次
apple和orange。那么你想保留它。如果是这种情况,请不要使用它,array_intersect_assoc也会检查索引,所以在这种情况下,它排成一行,$array1 = array(apple, orange, ..)和$array2 = array(apple, orange),索引 0、1 和匹配的值也可以正常工作,如果 @987654336 @ 恰好在最后一个索引上,它不会工作,因为它也会检查索引 -
你看过array_intersect_assoc()的描述了吗?显然不是。
-
是的,似乎 assoc 不起作用:D
标签: php arrays array-intersect