首页 > 解决方案 > 检查其中一个对象中是否存在密钥

问题描述

我想检查其中一个对象中是否存在密钥:

array (size=2)
  0 => 
    object(stdClass)[1631]
      public 'label' => string 'Monsieur' (length=8)
      public 'value' => string '1' (length=1)
      public 'selected' => boolean true
  1 => 
    object(stdClass)[1633]
      public 'label' => string 'Madame' (length=6)
      public 'value' => string '2' (length=1)

在示例中,我有一个包含两个对象的数组,第一个包含“选定”键。如果其中一个包含“选定”键,我想返回 true。如果对象不包含“选定”键,我想返回 false。

我可以有两个以上的对象。这仅用于示例。有这个功能吗?

标签: php

解决方案


您可以使用简单的循环来完成这项工作

$res = false;
foreach($arr as $item){
  if (isset($item->selected)) 
    $res = true;
}

在演示中检查结果

请注意,如果您的数组很大,则break在查找目标键时需要循环以防止额外检查


您也可以使用array_filter()

$res = !!array_filter($arr, function($item){
    return isset($item['selected']);
});

推荐阅读