你如何确保PHP中的数组是空的?

时间:2018-04-19 04:04:54

标签: php html

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

这是我的相关代码......

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为空,则会显示一条消息,表明没有完成任何工作?

9 个答案:

答案 0 :(得分:2)

试试这个

    $arr = array();

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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

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

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

 ?>

答案 3 :(得分:2)

试试这个

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# Some RewriteRules
RewriteRule ^api$ api.php
</IfModule>

答案 4 :(得分:1)

你可以尝试这个 - FocusNode focusNode; void initState() { focusNode = new FocusNode(); // listen to focus changes focusNode.addListener(() => print('focusNode updated: hasFocus: ${focusNode.hasFocus}')); } void setFocus() { FocusScope.of(context).requestFocus(focusNode); } Widget build() { return ... new TextField(focusNode: focusNode, ...); }

答案 5 :(得分:1)

我经常使用empty($arr)来执行此操作。

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

我认为你需要的是检查$ 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>';
         }

答案 8 :(得分:0)

请改为尝试:

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