如何判断一个数组是否有元素?

How to determine if an array has any elements or not?

如何判断一个数组是否有一个或多个元素?

我需要执行一段数组大小大于零的代码。

if ($result > 0) {
    // Here is the code body which I want to execute
} 
else {
    // Here is some other code
}

count — 计算数组中的所有元素,或对象中的某些元素

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

计算数组中的所有元素,或对象中的某些元素。

示例:

<?php
    $a[0] = 1;
    $a[1] = 3;
    $a[2] = 5;
    $result = count($a);
    // $result == 3

在你的情况下,它就像:

if (count($array) > 0)
{
    // Execute some block of code here
}

您可以使用 count()sizeof() PHP 函数:

if (sizeof($result) > 0) {
    echo "array size is greater than zero";
}
else {
    echo "array size is zero";
}

或者您可以使用:

if (count($result) > 0) {
    echo "array size is greater than zero";
}
else {
    echo "array size is zero";
}

您可以使用简单的 foreach 避免长度检索和检查:

foreach($result as $key=>$value) {
    echo $value;
}

@Sajid Mehmood in PHP we have count() to count the length of an array, when count() returns 0 that means that array is empty

举个例子来加深理解:

<?php
    $arr1 = array(1); // With one value which will give 1 count
    $arr2 = array();  // With no value which will give 0 count

    // Now I want that the array which has greater than 0 count should print other wise not so

    if (count($arr1)) {
        print_r($arr1);
    }
    else {
        echo "Sorry, array1 has 0 count";
    }

    if (count($arr2)) {
        print_r($arr2);
    }
    else {
        echo "Sorry, array2 has 0 count";
    }

如果你只想检查数组是否不为空,你应该使用empty()——它比count()快得多,而且可读性也更好:

if (!empty($result)) {
    // ...
} else {
    // ...
}

对于那些以 PHP 中的数组开头的人,可以这样表示: more information here

//Array
$result = array(1,2,3,4);

//Count all the elements of an array or something of an object
if (count($result) > 0) {
    print_r($result);
} 

// Or 
// Determines if a variable is empty
if (!empty($result)) {
    print_r($result);
}

// Or 
// sizeof - Alias of count ()
if (sizeof($result)) {
    print_r($result);
} 
<pre>
$ii = 1;
$arry_count = count($args);
foreach ( $args as $post)
{
    if( $ii == $arry_count )
    {
        $last = 'blog_last_item';
    }
    echo $last;
    $ii++; 
}
</pre>

专业提示:

如果您确定:

  1. 变量存在 (isset) AND
  2. 变量类型是一个数组 (is_array) ...可能对所有 is_iterables 都是正确的,但我还没有研究问题范围的扩展。

那么你不需要调用任何函数。 一个包含一个或多个元素的数组的布尔值为true。没有元素的数组的布尔值为 false.

代码:(Demo)

var_export((bool)[]);
echo "\n";
var_export((bool)['not empty']);
echo "\n";
var_export((bool)[0]);
echo "\n";
var_export((bool)[null]);
echo "\n";
var_export((bool)[false]);
echo "\n";

$noElements = [];
if ($noElements) {
    echo 'not empty';
} else {
    echo 'empty';
}

输出:

false
true
true
true
true
empty