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