无论数组索引如何,都要检查数组的第一个元素

时间:2015-01-16 09:08:18

标签: php arrays

我需要检查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)) { ... } 循环。

3 个答案:

答案 0 :(得分:2)

您可以使用reset()函数从数组中获取第一个索引数据

if(is_object(reset($myArray))){
 //do here
}

答案 1 :(得分:0)

试试这个

reset($myArray);
$firstElement = current($myArray);

current获取当前索引中的元素,因此您应该使用reset将数组的指针重置为第一个元素

http://php.net/manual/en/function.current.php

http://php.net/manual/en/function.reset.php

答案 2 :(得分:0)

您可以获得一系列密钥并获得第一个密钥:

$keys = array_keys($myArray);
if((is_object($myArray[$keys[0]]))) { ... }