如何在PHP中检查数组是否为空(Codeigniter)

uurv41yg  于 2023-11-16  发布在  PHP
关注(0)|答案(3)|浏览(112)

下面是我的代码示例:

public function show($imei,$start_time,$end_time,$dateto) { 

    $from_time = str_replace('-','/',$start_time);
    $fromi=strtotime($from_time . ' ' . $end_time);
    $too1=strtotime($from_time . ' ' . $dateto); 

    $data['coordinates'] = $this->road_model->get_coordinatesudhetime($imei, $fromi, $too1);
    $this->load->view('road/show', $data);

                if (!empty($data))
        {
    echo 'Array it's empty*';
        }
     }

字符串
我想检查$data是否为空。

hgncfbus

hgncfbus1#

if (empty($data))
{
    echo "array is empty";
}
else
{
    echo "not empty";
}

字符串
或者count($data)返回数组的大小。
如果你不确定变量是否是数组,你可以先检查类型,然后检查大小。

if(is_array($data) && count($data)>0)

oo7oh9g9

oo7oh9g92#

你也可以这样做

if(is_array($data) && count($data)>0)
{
   echo "not empty";
}else{
   echo "empty";
}

字符串

zvms9eto

zvms9eto3#

在你的代码中,你会在加载了模型中的坐标后检查$data数组是否为空。但是,你会在加载视图后立即检查它,这意味着$data数组在那个时候永远不会为空。相反,你应该在尝试使用它之前检查数组是否为空。下面是你的代码的更新版本:

public function show($imei, $start_time, $end_time, $dateto) { 
    $from_time = str_replace('-', '/', $start_time);
    $fromi = strtotime($from_time . ' ' . $end_time);
    $too1 = strtotime($from_time . ' ' . $dateto); 

    $data['coordinates'] = $this->road_model->get_coordinatesudhetime($imei, $fromi, $too1);

    if (empty($data['coordinates'])) {
        echo 'Array is empty';
    } else {
        $this->load->view('road/show', $data);
    }
}

字符串
在这段更新的代码中,我修改了条件,在加载视图之前检查$data {'coordinates']是否为空。这样,你就可以在视图中使用数组之前处理数组为空的情况。

相关问题