【问题标题】:Looping through two column at the same time in laravel在laravel中同时循环遍历两列
【发布时间】:2018-04-30 16:01:58
【问题描述】:

我想获取两列的值并同时遍历两列,并使用它来计算使用纬度和经度的距离,但问题是它循环用于力学的所有纬度并循环用于力学的所有经度,但两者应合二为一。

            $mechanicsLatitude = DB::table("tranxav_mechanics")->get(['latitude','email']);
            $mechanicsLongitude = DB::table("tranxav_mechanics")->get(['longitude', 'email']);

              foreach ($mechanicsLatitude as $latitudeData){
                  foreach ($mechanicsLongitude as $longitudeData){
                       $theta = $driverLongitude - $longitudeData->longitude;
                      $dist = sin(deg2rad($driverLatitude)) * 
                              sin(deg2rad($latitudeData->latitude)) 
                          +  cos(deg2rad($driverLatitude)) 
                          * cos(deg2rad($latitudeData->latitude)) 
                          * cos(deg2rad($theta));
                        $dist = acos($dist);
                       $dist = rad2deg($dist);
                       $miles = $dist * 60 * 1.1515;
                      $unit = strtoupper("K");

                      if ($unit == "K") {
                        return $miles =  $miles * 1.609344;
                      } elseif ($unit == "N") {
                            $miles = $miles * 0.8684;
                      } else {
                            $miles;
                      }

                        TranxavTransaction::create([
                            'dEmail' => $request->get("email"),
                            'mEmail' => $longitudeData->email,
                            'car_model' => $model,
                            'how_it_happened' => $request->get("likelyProblem"),
                            'latitude' => $request->get("latitude"),
                            'longitude' => $request->get("longitude"),
                            'problem' => input::get('likelyProblem')
                        ]);
                    }
                 }

【问题讨论】:

    标签: laravel loops foreach


    【解决方案1】:

    您可以使用带索引的简单 for 循环来代替 foreach:

    for ($i = 0; $i < $mechanicsLatitude->count(); $i++)
        $theta = $driverLongitude - $mechanicsLongitude[$i]->longitude;
        .
        .
        .
    

    并确保 $mechanicsLatitude 和 $mechanicsLongitude 具有相同的长度。

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 2014-08-13
      • 2020-01-14
      相关资源
      最近更新 更多