我需要检查array
中的元素是objects
还是其他内容。到目前为止,我这样做了:
if((is_object($myArray[0]))) { ... }
但是,有时候情况要求输入array
没有从零开始的索引(或者甚至不是numeric
),因此要求$myArray[0]
将生成{ {1}},但如果第一个数组元素实际上是Notice
(但在另一个索引下),也会在我的条件中返回错误的结果。
我能想到的唯一方法就是object
循环,我会在第一时间突破它。
foreach
但我想知道是否有比这更快的代码,因为这里似乎没有foreach($myArray as $element) {
$areObjects = (is_object($element));
break;
}
if(($areObjects)) { ... }
循环。
答案 0 :(得分:2)
您可以使用reset()
函数从数组中获取第一个索引数据
if(is_object(reset($myArray))){
//do here
}
答案 1 :(得分:0)
试试这个
reset($myArray);
$firstElement = current($myArray);
current获取当前索引中的元素,因此您应该使用reset将数组的指针重置为第一个元素
答案 2 :(得分:0)
您可以获得一系列密钥并获得第一个密钥:
$keys = array_keys($myArray);
if((is_object($myArray[$keys[0]]))) { ... }