Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何确定数组是否有元素?_Php_Arrays_If Statement_Counting - Fatal编程技术网

Php 如何确定数组是否有元素?

Php 如何确定数组是否有元素?,php,arrays,if-statement,counting,Php,Arrays,If Statement,Counting,如何查找数组是否有一个或多个元素 我需要执行一个数组大小大于零的代码块 if ($result > 0) { // Here is the code body which I want to execute } else { // Here is some other code } <pre> $ii = 1; $arry_count = count($args); foreach ( $args as $post) { if( $ii == $ar

如何查找数组是否有一个或多个元素

我需要执行一个数组大小大于零的代码块

if ($result > 0) {
    // Here is the code body which I want to execute
} 
else {
    // Here is some other code
}
<pre>
$ii = 1;
$arry_count = count($args);
foreach ( $args as $post)
{
    if( $ii == $arry_count )
    {
        $last = 'blog_last_item';
    }
    echo $last;
    $ii++; 
}
</pre>

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

您可以使用
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在PHP中,我们有count()来计算数组的长度, 当count()返回0时,表示数组为空

让我们举一个例子来说明您的理解:

<?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";
    }

如果只想检查数组是否为空,则应使用-它比
count()
快得多,而且可读性也更高:

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

对于那些从PHP中的数组开始的人,可以这样表示:


二元=1;
$arry\u count=计数($args);
foreach($args作为$post)
{
如果($ii=$arry\u计数)
{
$last='blog_last_item';
}
回音$last;
$ii++;
}
Pro提示: 如果您确信:

  • 变量存在(isset)并且
  • 变量类型是一个数组(is_数组)…可能对所有is_可数都适用,但我还没有研究问题范围的扩展
  • 则不需要调用任何函数。包含一个或多个元素的数组的布尔值为
    true
    。没有元素的数组的布尔值为
    false

    代码:()

    输出:


    count()函数if(count($result)>0)如果我们计数超过一次,那么我们可以在if条件下再次计数吗?您可以随意计数多次,但有时并不需要。尽量不要做不必要的事情,那只会玷污你的代码。当在数组中使用sizeof或count时,PHP7会抛出一个警告。现在有更好的方法吗?只有将无效类型传递给
    count
    时,才会引发警告。请参阅此处的更改日志:。您能为代码添加一些解释吗?
    $last
    做什么?欢迎来到堆栈溢出!感谢您提供的代码片段,它可能会提供一些有限的、即时的帮助。一个恰当的解释将通过描述为什么这是一个很好的问题解决方案来极大地改进its,并将使它对未来有其他类似问题的读者更有用。请编辑您的答案,添加一些解释,包括您所做的假设。
    //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>
    
    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