注意:数组到字符串转换PHP

时间:2015-02-05 22:00:21

标签: php arrays

我分别找到两个数组$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 )

1 个答案:

答案 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 ) )