我只需要检查一个数组是否有多个元素。我正在尝试这样做:
if (isset($arr['1']))
另一种传统方式是
if (sizeof($arr)>1)
两者哪个更好?在这种情况下,我应该如何在两种替代方法之间进行判断?是否有任何性能检查表可用于测量哪个更好?
用这个
if (sizeof($arr) > 1) {
....
}
或者
if (count($arr) > 1) {
....
}
sizeof()
是 的别名count()
,它们的工作方式相同。
编辑:
回答问题的第二部分:问题中的两行代码不是替代方法,它们执行不同的功能。第一个检查是否设置了 at 的值$arr['1']
,而第二个返回数组中元素的数量。
if(is_array($arr) && count($arr) > 1)
只是为了确保 $arr 确实是一个数组。
sizeof
是 的别名count
,我更喜欢使用 count 因为:
if (count($arr) >= 2)
{
// array has at least 2 elements
}
sizeof()
是 的别名count()
。两者都适用于非数组,但如果参数是数组或对象,它们只会返回大于 1 的值Countable
,所以你很安全。
显然使用count($arr) > 1
(sizeof
只是count
) 的别名是最好的解决方案。根据数组的结构,可能有大量元素但没有$array['1']
元素。
我更喜欢count()
函数而不是sizeOf()
assizeOf()
只是一个别名,count()
并且在许多其他语言中并不相同。许多程序员希望sizeof()
返回分配的内存量。
对于检查数组,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() 仅检查是否设置了变量。与大小或数组包含的内容无关
我假设 $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.";
}
我在 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)
}