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;
   }
}