【发布时间】:2014-05-09 13:24:17
【问题描述】:
我需要检查DOMNode 对象数组是否包含DOMNode 对象类似数组中的所有项目。
一般来说,为了检查一个数组是否包含另一个数组,我尝试了this question 中列出的一些方法。但是,array_intersect() 和 array_diff() 都比较基于 (string) $elem1 === (string) $elem2 的数组项 - 这会为 DOMElements 引发以下错误,因为它们无法转换为字符串。
PHP Catchable fatal error:
Object of class DOMElement could not be converted to string in...
处理这个问题的正确方法是什么?
【问题讨论】:
-
不应为对象比较进行字符串转换。只需简单比较即可验证对象是否相等。见stackoverflow.com/questions/11172506/…
-
如果数组 A 包含与数组 B 相同的节点,您想知道两个数组是否与相同的 DOMNodes 相同或只是不同或真或假?
-
@TimDev - 如果 ArrayA 包含 ArrayB 中的所有内容,我正在寻找真/假。
-
您需要创建自己的方法,没有其他 diff 方法可以做到这一点。
-
如果你想知道它们是否完全相同,你可以序列化数组并简单地比较。但这不是你需要的。但是您可以序列化您在方法中循环的每个项目!祝你好运!