如何确保数组在 PHP 中为空



我用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

如何阻止脚本将Open添加到values1数组,并在values1为空时显示一条消息,指出没有工作完成?

试试这个

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

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

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

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

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

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

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

试试这个

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

试试这个- if (empty($somelist)) { // list is empty. }

我经常使用empty($arr)来做到这一点。

试试这个:

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

您需要的是检查 $values 1 是否存在,因此请尝试使用 isset(( 来执行此操作,并且无需使用 $test var:

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

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

    $values1 = array();

然后检查它是否不为空:

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

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

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

最新更新