Oto tablica wejściowa:
array [ 0 => [ "surname" => "user1" "step" => "step1" "time" => 4 "data" => "2018-05-30" ] 1 => [ "surname" => "user2" "step" => "step2" "time" => 5 "data" => "2018-05-30" ] 2 => [ "surname" => "user3" "step" => "step2" "time" => 6 "data" => "2018-05-30" ] 3 => [ "surname" => "user1" "step" => "step1" "time" => 7 "data" => "2018-05-31" ] 4 => [ "surname" => "user1" "step" => "step3" "time" => 8 "data" => "2018-05-31" ] ]
Teraz chciałbym na jej podstawie utworzyć nową i uzyskać taki wynik:
array [ 0 => [ "surname" => "user1" "step1" => 4 "data" => "2018-05-30" ] 1 => [ "surname" => "user2" "step2" => 5 "data" => "2018-05-30" ] 2 => [ "surname" => "user3" "step2" => 6 "data" => "2018-05-30" ] 3 => [ "surname" => "user1" "step1"=> 7 "step3"=> 8 "data" => "2018-05-31" ] ]
Nowa tablica musi zawierać wszystkie daty. Jeśli występowały dwa rekordy w danym dniu utworzone przez tego samego użytkownika, to mają być połączone. Ale w konkretny sposób: wartość klucza step z starej tablicy ma być kluczem w nowej tablicy. A wartością tego klucza ma zostać wartość Time.
Całkowie nie mam pomysłu jak się za to zabrać

Dotychczas udało mi się jedynie wy filtrować dane na podstawie daty:
foreach($out as $key => $arr_values) { } } $temp_array2 = []; foreach ($temp_array as $item) { $temp_array2[]['data'] = $item; } if ($temp_array2[$a]['data'] == $out[$a1]['data']) { $temp_array2[$a]['dane'][$a1] = $out[$a1]; } } }
Ale nie wiem jak teraz połączyć duplikaty na podstawie username

Prawdopodobnie źle sie do tego zabrałem ,ale nie wiem jak przez to przebrnąć.
Może mnie ktoś nakierować na rozwiązanie tego problemu?
Chyba mi się udało.Możecie zerknąć czy to jest dobre podejście?
A może macie jakieś inne propozycję?
public function returnKey($array,$var_data,$var_user) { foreach ($array as $ke=>$im) { if($im['data'] == $var_data && $im['surname'] == $var_user) { return $ke; } } } $xx = []; $rr = returnKey($xx, $tmp[$q]['data'], $tmp[$q]['surname']); $xx[$q][$tmp[$q]['step']] = $tmp[$q]['time']; $xx[$q]['surname'] = $tmp[$q]['surname']; $xx[$q]['data'] = $tmp[$q]['data']; } else { $xx[$rr][$tmp[$q]['step']] = $tmp[$q]['time']; } }