【问题标题】:How do you make sure an array is empty in PHP?如何确保 PHP 中的数组为空?
【发布时间】:2018-04-21 14:53:18
【问题描述】:

我正在用 HTML/PHP 编写一个页面,该页面连接到一个码头数据库(船、船主等),该数据库从下拉列表中选择一个船名,然后显示该船在其上完成的所有服务.

这是我的相关代码...

if(isset($_POST['form1'])){//if there was input data submitted
        $form1 = $_POST['form1'];

        $sql1 = 'select Status from ServiceRequest,MarinaSlip where MarinaSlip.SlipID = ServiceRequest.SlipID and BoatName = "'.$form1.'"';
        $form1 = null;
        $result1 = $conn->query($sql1);

        $test = 0;
            while ($row = mysqli_fetch_array($result1, MYSQLI_ASSOC)) {

                    $values1[] = array(
                    'Status' => $row['Status']
                    );
                    $test = 1;

            }

                echo '<p>Service Done:</p><ol>';
                if($test = 1){
                    foreach($values1 as $v1){

                        echo '<li>'.$v1['Status'].'</li>';
                    }
                    echo '</ol>';
                }else{
                    echo 'No service Done';
                }

我遇到的问题是一些服务描述只是Open,我不想显示为服务完成,或者根本没有服务完成,这会抛出undefined variable: values1

如果values1 为空,我将如何阻止我的脚本将Open 添加到values1 数组并显示未完成任何工作的消息?

【问题讨论】:

标签: php html


【解决方案1】:

试试这个

    $arr = array();

if (empty($arr)) 
{
     echo'empty array';
}

【讨论】:

    【解决方案2】:

    我们经常使用empty($array_name)来检查是否为空

    <?php
    if(!empty($array_name))
    {
        //not empty
    }
    else
    {
        //empty
    }
    

    还有另一种我们可以确定的方法是使用count() 函数

     if(count($array_name) > 0)
     {
        //not empty
     }
     else
     {
        //empty
     }
    
     ?>
    

    【讨论】:

      【解决方案3】:

      要确保数组为空,您可以同时使用 count() 和 empty()。但是 count() 比 empty() 稍慢。count() 返回数组中存在的元素数。

      $arr=array();
      if(count($arr)==0){
      //your code here
      }
      

      【讨论】:

        【解决方案4】:

        试试这个

        if(isset($array_name) && !empty($array_name))
        {
        //not empty
        }
        

        【讨论】:

          【解决方案5】:

          你可以试试这个—— if (empty($somelist)) { // list is empty. }

          【讨论】:

            【解决方案6】:

            我经常用empty($arr)来做。

            【讨论】:

              【解决方案7】:

              试试这个:

              if (!$values1) {
                  echo "No work has been completed";
              } else {
                  //Do staffs here
              }
              

              【讨论】:

                【解决方案8】:

                我认为您需要检查 $values1 是否存在,因此请尝试使用 isset() 来执行此操作,而无需使用 $test var:

                if(isset($values1))
                     foreach($values1 as $v1){
                         echo '<li>'.$v1['Status'].'</li>';
                     }
                

                或者尝试在while之前定义$values1:

                    $values1 = array();
                

                然后检查是否为空:

                     if($values1 != '')
                         foreach($values1 as $v1){
                             echo '<li>'.$v1['Status'].'</li>';
                         }
                

                【讨论】:

                  【解决方案9】:

                  您所要做的就是获取布尔值 empty($array)。如果数组为空,它将返回false

                  您可以将empty($varName) 用于多种用途。 更多参考:http://php.net/manual/en/function.empty.php

                  【讨论】:

                    猜你喜欢
                    • 2011-08-04
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-04-02
                    • 2010-12-10
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-11-29
                    相关资源
                    最近更新 更多