Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam
Mam taką tablicę dwuwymiarową
array(4) { [0]=> array(2) { ["username"]=> string(7) "Bradley" ["score"]=> int(1) } [1]=> array(2) { ["username"]=> string(4) "Koń" ["score"]=> int(2) } [2]=> array(2) { ["username"]=> string(5) "Bradley" ["score"]=> int(2) } [3]=> array(2) { ["username"]=> string(4) "Mike" ["score"]=> int(2) } }
Chciałbym teraz dodać do siebie zduplikowane elementy (czyli te, w których USERNAME jest takie same) a później usunąć duplikat i przeindeksować tablicę. Czyli interesuje mnie wynik:
array(3) { [0]=> array(2) { ["username"]=> string(4) "Koń" ["score"]=> int(2) } [1]=> array(2) { ["username"]=> string(5) "Bradley" ["score"]=> int(3) } [2]=> array(2) { ["username"]=> string(4) "Mike" ["score"]=> int(2) } }
Czyli z dwóch wpisów Bradleya (jeden 2 punkty, drugi 1 punkt) ma się zrobić jeden wpis z sumą (3 punkty).
Próbowałem na wiele sposobów, różne array_merge, array_splice, wszystko - nic nie pomaga.
Ma ktoś jakiś pomysł?
Ostatnio edytowany przez poslad (2013-11-16 17:56:34)
Offline
<?php $in = array(...); $out = array(); foreach ($in as $iv) { $found = false; foreach ($out as &$ov) { if ($ov['username'] == $iv['username']) { $ov['score'] += $iv['score']; $found = true; break; } } if (!$found) $out[] = $iv; }
Ostatnio edytowany przez averatec (2013-11-16 16:42:41)
Offline
Dziękuję za szybką odpowiedź.
Pocieszeniem dla mnie może być jedynie to, że byłem już blisko, zrobiłem pętlę for w pętli for i porównywałem username, a później zapisywałem wyniki do nowej tablicy, ale to jednak nie było to.
Ale to co ty napisałeś idealnie zadziałało "od kopa"!
Pytanie z ciekawości - miałeś to już zapisane, czy napisałeś teraz z głowy?
Offline
napisalem to chwila jest, dosc prosty problem ktory daloby sie pewnie jeszcze uproscic
Offline
Cóż, ja dopiero kilka dni temu nauczyłem używać się pętli foreach, jeszcze wszystko przede mną. Może z czasem nabiorę takiego doświadczenia. Przyznaję, że jestem pod wrażeniem.
Offline
Strony: 1