PHP如何检查数组键是否等于某个值?

时间:2012-01-05 04:12:42

标签: php

如何检查数组键是否等于具有如下数组的值:

Array ( [0] => stdClass Object ( [subCategory] => All Headphones [description] => [image] => ) [1] => stdClass Object ( [subCategory] => Behind-the-Neck Headphones [description] => [image] => ) [2] => stdClass Object ( [subCategory] => Clip-On Headphones [description] => [image] => ) [3] => stdClass Object ( [subCategory] => Earbud Headphones [description] => [image] => ) [4] => stdClass Object ( [subCategory] => Kids' Headphones [description] => [image] => ) )

我尝试过使用此代码:

if(array_key_exists('subCategory',$array) {
          echo "Exists";
}

2 个答案:

答案 0 :(得分:4)

因为你有一个标准对象数组而无法工作...即使存在的唯一数组键也是整数。所以问题是你想要检测什么?如果要检查对象是否具有subCategory属性,可以执行isset($obj->subCategory)。如果要确保数组中的每个对象都具有该属性,则需要循环:

function hasSubCategory($array){
  foreach($array as $element) {
    if(!isset($element->subCategory)){
      return false; // if any object doesnt have the property
    }
  }

  return true; // if all objects have the property
}

我不认为那是你真正想做的事情,更多的信息会有所帮助。

答案 1 :(得分:0)

好像你正在使用fetch_object()。这为您提供了一系列对象。如果要使用数组,请使用fetch_assoc() 要使用array_key_exists,您需要循环结果,因为它是多维数组。