当值确实存在时,数组中的 php 返回 false

标签 php arrays

这里很简单,但伤了脑袋。

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/

相关文章:

PHP Reforce 搜索引擎

php - 是否有可靠的方法将 Zurb Foundation CSS 框架与 CakePHP 一起使用?

c# - C#中的二维数组切片

arrays - 未命名数组的 JSON 模式?

java - 检查基元数组是否包含另一个数组中的所有基元的最佳方法

PHP 多维数组 - 计算实例数

php - 在 cpanel 中上传 csv 文件时的 codeigniter 问题

javascript - 尝试使用表单登录时 PHP 重定向到错误的 URL

php - 使用 PHP 在 GeoLite2 中调用国家/地区引用

cocoa - cocoa 中的按钮数组?