这是检查数组是否包含多个元素的更好方法?

时间:2012-04-05 08:10:42

标签: php arrays

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

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

另一种传统方式是

if (sizeof($arr)>1)

两者中哪一个更好?在这种情况下,我应该如何判断两种替代方法? 是否有任何性能检查仪可以测量哪个更好?

11 个答案:

答案 0 :(得分:338)

使用此

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

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

sizeof()count()的别名,它们的工作方式相同。

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

答案 1 :(得分:44)

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

只是为了确保$ arr确实是一个数组。

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

  1. 少输入1个字符
  2. sizeof快速浏览可能意味着内存方面的数组大小,太技术化了:(

答案 2 :(得分:6)

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

sizeof()count()的别名。两者都可以使用非数组,但是如果参数是数组或Countable对象,它们只返回大于1的值,所以你对此非常安全。< / p>

答案 3 :(得分:6)

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

答案 4 :(得分:6)

使用count()

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

此页面很好地解释了http://phparraylength.com/

答案 5 :(得分:6)

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

答案 6 :(得分:4)

用于检查数组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';

答案 7 :(得分:3)

isset()仅检查是否设置了变量..与大小无关或数组包含什么

答案 8 :(得分:2)

我假设$ arr是一个数组,那么这就是你要找的东西

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

答案 9 :(得分:1)

第一种方法 if (isset($arr['1'])) 不适用于关联数组。

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

$arr = array(
    'a' => 'apple',
    'b' => 'banana',
);

if (isset($arr['1'])) {
    echo "Yup, more than one.";
} else {
    echo "Nope, not more than one.";
}

答案 10 :(得分:0)

我执行数组循环,并在Swift 4/5中相应地获取默认值

   for index in 0..<3
    {
        let isIndexValid = allObjects.indices.contains(index)
        var yourObject:Class = Class()
        if isIndexValid { yourObject = allObjects[index]}
        resultArray.append(yourObject)
    }