我分别找到两个数组$item
和$query
之间的交集:
Array ( [0] => twitter [1] => 1 [2] => 561522539340771328 [3] => Array ( ) )
Array ( [0] => dig [1] => twitter )
这是我的代码:
if (array_intersect ( $query, $item )) {
$intersection [] = $item;
}
不知何故,它按照此问题标题的定义返回通知。要么我太累了,不能注意到错误或者我可能会发疯,不应该回来 Array ( [0] => twitter )
?
答案 0 :(得分:3)
这是因为你的第一个数组的末尾有一个空数组,而array_intersect()
会尝试将它转换为一个字符串,这会给你这个错误。
但是要摆脱这个错误,你可以像这样使用array_filter()
:
(你也想分配array_intersect的输出,然后使用它)
<?php
$item = array("twitter", 1, 561522539340771328, array());
$query = array("dig", "twitter");
if ($intersect = array_intersect($query, array_filter($item))) {
//^^^^^^^^^^^^ See here
$intersection [] = $intersect;
}
print_r($intersection);
?>
输出:
Array ( [0] => Array ( [1] => twitter ) )