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

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

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

另一种传统方式是

if (sizeof($arr)>1)

这两种方法哪一种更好? 在这种情况下,我应该如何在两种备选方法之间做出判断? 有没有性能检测仪来测量哪个更好?

260164 次浏览

Isset ()只检查变量是否被设置. . 与大小或数组包含的内容无关

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

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

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

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

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

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

sizeof()count()的别名。两者都适用于非数组,但是 如果参数是数组或 Countable对象,则它们只返回大于1的值,所以使用它是相当安全的。

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

用这个

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

或者

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

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

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

使用 count()

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

这个页面很好地解释了它 http://phparraylength.com/

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

例如,下面的代码显示“ No,not more than one”

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


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

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

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

我在 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)
}