哪一个更好的方法来检查一个数组是否有多个元素?

我只需要检查一个数组是否有多个元素。 我正在试图这样做:

if (isset($arr['1'])) 

另一种传统的方式是

 if (sizeof($arr)>1) 

哪一个更好? 在这种情况下,我应该如何判断两种替代方法? 是否有任何性能检查米可用来衡量哪个更好?

用这个

 if (sizeof($arr) > 1) { .... } 

要么

 if (count($arr) > 1) { .... } 

sizeof()count()的别名,它们的工作原理是一样的。

编辑:回答问题的第二部分:问题中的两行代码不是替代方法,它们执行不同的function。 第一个检查是否设置了$arr['1']的值,而第二个返回数组中元素的数量。

if(is_array($arr) && count($arr) > 1)

只要确定$ arr确实是一个数组。

sizeofcount的别名,我更喜欢使用count,因为:

  1. 减less1个字符的types
  2. sizeof在快速浏览可能意味着在内存方面的数组大小,太技术:(

我更喜欢count()函数,而不是sizeOf()因为sizeOf()只是count()的别名,并不代表许多其他语言中的相同。 许多程序员希望sizeof()返回分配的内存量。

 if (count($arr) >= 2) { // array has at least 2 elements } 

sizeof()count()的别名。 它们都可以和非数组一起工作,但是如果参数是一个数组或者一个Countable对象它们只会返回大于1的值 ,所以你可以很安全地使用它。

显然使用count($arr) > 1sizeof只是count的别名)是最好的解决scheme。 根据数组的结构,可能有大量的元素,但没有$array['1']元素。

使用count()

 if (count($my_array) > 1) { // do } 

这个页面解释得很好http://phparraylength.com/

为了检查一个数组empty()比sizeof()好。

如果数组包含大量的数据。 计算数组的大小将花费更多的时间。 但是检查空白总是很容易的。

 //for empty if(!empty($array)) echo 'Data exist'; else echo 'No data'; //for sizeof if(sizeof($array)>1) echo 'Data exist'; else echo 'No data'; 

isset()只检查是否设置了一个variables。与大小或数组所包含的内容无关

我假设$ arr是一个数组,那么这就是你正在寻找的

 if ( sizeof($arr) > 1) ... 

第一种方法if (isset($arr['1']))不能在关联数组上工作。

例如,下面的代码显示“不,不超过一个”。

 $arr = array( 'a' => 'apple', 'b' => 'banana', ); if (isset($arr['1'])) { echo "Yup, more than one."; } else { echo "Nope, not more than one."; }