mam sobie taki wycinek kodu:
function myFun(){ { $id = $_POST['id']; $cena = $_POST['cena']; $ilosc = $_POST['ilosc']; 'id' => $id, 'ilosc' => $ilosc, 'cena' => $cena } } }
Funkcja jest wywoływana każdorazowo ajax'em kiedy klikniemy pewien button i wtedy wysyła się post a następnie tworzy się tablica sesyjna, która w rezultacie wygląda mniej więcej tak (po wykonaniu kodu):
'id' => 1, 'ilosc' => 23, 'cena' => 23.21 ), 'id' => 2, 'ilosc' => 2, 'cena' => 12.21 ), 'id' => 3, 'ilosc' => 1, 'cena' => 7.21 ), 'id' => 1, 'ilosc' => 1, 'cena' => 3.00 ), 'id' => 1, 'ilosc' => 10, 'cena' => 30.00 ) )
mój problem polega na uporządkowaniu tablicy $_SESSION['cart'] w taki sposób by elementy, które są nowo dodawane były sprawdzane z tym co już jest - jeżeli jest pod tablica o takim samym id i ilości to nic się nie dzieje, jeżeli jest takie same id ale różna ilość to aktualizuje się obecny wpis o ilość, jeżeli nie ma danego id to dodaje nową pod tablicę do obecnej tablicy.
Czyli chcę uzyskać taki rezultat:
'id' => 1, 'ilosc' => 10, 'cena' => 30.00 ), 'id' => 2, 'ilosc' => 2, 'cena' => 12.21 ), 'id' => 3, 'ilosc' => 1, 'cena' => 7.21 ) )
Próbowałem zrobić coś takiego:
function myFun2(){ $newArray = $_SESSION['cart']; if ($newArray[$i]['id'] == $id){ if($newArray[$i]['ilosc'] != $ilosc){ $newArray[$i]['ilosc'] = $ilosc; } } else{ 'id' => $id, 'ilosc' => $ilosc, 'cena' => $cena ); } } return $newArray; }
ale niestety niezbyt działa gdyż pierwsze kilka wartości poprawnie działają zaś jak się da więcej do wartości się duplikują a nie nadpisują :/
Macie jakiś pomysł ?