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