这里很简单,但伤了脑袋。
echo in_array('275', $searchMe);
返回错误。但是,如果我将数组打印出来,然后使用我的 Web 浏览器手动搜索它,我就能看到该值存在于数组中。
[0] => ExtrasInfoType Object
(
[Criteria] =>
[Code] => 275
[Type] => 15
[Name] => Pen
)
额外信息。该数组已使用
从对象转换为数组$searchMe = (array) $object;
会不会是因为没有引用值?我尝试将以下内容与 in_array
函数一起使用:
echo in_array('275', $searchMe); // returns false
echo in_array(275, $searchMe); // returns error (Notice: Object of class Extras could not be converted to int in)
$searchMe 的 var_dump
array
'Extras' =>
object(Extras)[6]
public 'Extra' =>
array
0 =>
object(ExtrasInfoType)[7]
...
1 =>
object(ExtrasInfoType)[17]
...
2 =>
object(ExtrasInfoType)[27]
...
最佳答案
我认为有一个场景会有所帮助。
如果包含该值的数组索引是0,那么in_array的返回值就是0。如果在我们的逻辑中,0被认为是false,那么就会有问题。在您的代码中避免这种模式。
关于当值确实存在时,数组中的 php 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333698/