Home > Software engineering >  Clean an array in Laravel
Clean an array in Laravel

Time:02-23

I have a function that retrieves an array of values from a DB with a query in Laravel. I need to clean that array

From this: 2022-02-21 07:40:16

To this: 07:40:16

How can I do?

The function is this:

public function singleDev(Device $deviceID)
{
    $data = DataFromRasp::where('MAC', 'C4:A5:DF:24:05:7E')->get()->pluck('RSSI', 'created_at')->toArray();
    $time_array = [];
    $rssi_array = [];
    $cnt = 0;
    foreach ($data as $key => $value) {
        array_push($time_array, $key);
        array_push($rssi_array, $value);
        if ($value < -60) {
            $cnt  ;
            if ($cnt >= 2) {
   
            }
        }
    }
    dd($time_array);
    
    return view('backend.auth.user.singleDevice', compact("time_array", "rssi_array"));
}

CodePudding user response:

Try this

public function singleDev(Device $deviceID){
        $data = DataFromRasp::select('RSSI', 'created_at')->where('MAC', 'C4:A5:DF:24:05:7E')->get();
        $time_array = [];
        $rssi_array = [];
        $cnt = 0;
        foreach($data as $dataItem){
            array_push($time_array, $dataItem->created_at->format('H:i:s'));
            array_push($rssi_array, $dataItem->RSSI);
            if($value < -60){
                $cnt  ;
                if($cnt >=2){

                }
            }
        }
        dd($time_array);

        return view('backend.auth.user.singleDevice', compact("time_array", "rssi_array"));
    }

CodePudding user response:

You can use the power of Laravel Collection methods like map, pluck, and make the solution short.

$data = DataFromRasp::select('RSSI', 'created_at')->where('MAC', 'C4:A5:DF:24:05:7E')->map(function($d) {
    $d->timeValue = $d->created_at->format('H:i:s');
    return $d;
});

$time_array = $data->pluck('timeValue')->toArray();
$rssi_array = $data->pluck('RSSI')->toArray();
  • Related