Laravel: 如何判断数组是否为空?
Laravel: how to check if array is empty or not?
假设我有这个查询:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$buses[] = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
}
它返回的数据是空的,如下所示:[[],[]]
所以,我的问题是如何检查里面有没有数据?
一个简单的解决方案是排除空填充值:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$bus = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
if($bus && isset($bus->id)) {
$buses[] = $bus;
}
}
if($buses && count($buses)>0) {
//has value
}
如果你有公交相关的Schedule,可以使用,类似这样;
$schedules = Schedule::whereIn('id',$schedule_ids)->with('buses')->get();
//and you dont need to set into an array
你可以使用 count() 函数,像这样:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$bus = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
if(count($buses) > 0) {
$buses[] = $bus;
}
}
假设我有这个查询:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$buses[] = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
}
它返回的数据是空的,如下所示:[[],[]]
所以,我的问题是如何检查里面有没有数据?
一个简单的解决方案是排除空填充值:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$bus = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
if($bus && isset($bus->id)) {
$buses[] = $bus;
}
}
if($buses && count($buses)>0) {
//has value
}
如果你有公交相关的Schedule,可以使用,类似这样;
$schedules = Schedule::whereIn('id',$schedule_ids)->with('buses')->get();
//and you dont need to set into an array
你可以使用 count() 函数,像这样:
$schedules = [33,34];
foreach ($schedules as $schedule) {
$bus = DB::table("buses")->select('id', 'bus_number')
->where('station_id', $stations_id)
->whereNotNull('Driver_id')
->get();
if(count($buses) > 0) {
$buses[] = $bus;
}
}