array_diff()失败没有明显的原因

时间:2012-02-13 02:34:50

标签: php arrays

我正在尝试区分两个数组并且php返回以下错误:

Catchable fatal error: Object of class Node could not be converted to string in D:\projetos\labs\dok\dev\application\models\dok.php on line 410

我的数组分别是:

array(2)
    object(Node)#5 ...[7 attributes]
    object(Node)#6 ...[7 attributes]

array(1)
    object(Node)#5 ....[7 attributes]

我真的很感激一些帮助,因为我不知道发生了什么。谢谢(:


根据要求,围绕diff的代码:

// is it a distant child?
$all_childs = $node->get_childs(true);
$distant_childs = array_diff($all_childs, $childs);
if(in_array($this, $distant_childs))
    return 'distant-child';

1 个答案:

答案 0 :(得分:2)

  

注意:

     

当且仅当(字符串)$ elem1 ===时,才认为两个元素相等   (字符串)$ elem2。用文字表示:当字符串表示相同时。

如果元素是对象,则需要为对象提供__toString()方法,或者您自己完成。