Php 如何验证非法偏移警告?

Php 如何验证非法偏移警告?,php,arrays,foreach,Php,Arrays,Foreach,通过循环转储,我得到以下输出: foreach ($array as $value) { dump($value); } 但是如果我只想抓住身份证 array:2 [▼ "id" => "9a989408e5" "Name" => "cat" ] array:2 [▼ "id" => "47601aae85" &quo

通过循环转储,我得到以下输出:

foreach ($array as $value) {
      dump($value);
    }
但是如果我只想抓住身份证

array:2 [▼
  "id" => "9a989408e5"
  "Name" => "cat"
]


array:2 [▼
  "id" => "47601aae85"
  "Name" => "elephant"
]


array:2 [▼
  "uuid" => "7cb16ddafc"
  "Anzahl" => "rabbit"
]
我得到一个错误:

警告:非法字符串偏移量“id”


您只需使用array\u key\u exists检查数组中是否存在此键。像这样:

foreach ($array as $value) {
      dump($value['id']);
    }

这是行不通的。我得到了错误警告:array\u key\u exists期望参数2是array,string givei我假设您在foreach循环中执行if检查?根据您的转储输出,这不应该发生。但是,您可以将自己的回复与数组_key _exists结合起来。首先,检查它是否是一个数组。然后,检查数组是否具有密钥id。此代码不检查数组中是否存在id密钥。您尝试调试该问题的原因是什么?你能分享更多细节让其他人重现问题吗?@NicoHaase问题由if is_array$value | is_object$value解决{…已解决?该代码不会检查数组键id是否在all@NicoHaase嗯。但是我再也没有收到错误消息了。这就是为什么我认为它是solvedYou没有检查$value真正包含的内容?
if(array_key_exists('id', $value)){
    dump($value['id']);
}
 foreach ($array as $value) {
    if (is_array($value) || is_object($value)){
       dump($value['id']);
    }
  }