![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Zmagam się z takim tematem i nie mogę sobie poradzić
![]() Mianowicie jest taka sytuacja: Mam tablicę w której skład wchodzą elementy: Latitude, Longitude, StartTime, StopTime, Numer. Wartości wpisów sobie pogrupowałem wg elementu "Numer". Chciałbym osiągnąć taki efekt aby na podstawie źródłowej tablicy utworzyć nową tablicę która będzie zawierać pola: 1. Jeśli w tablicy źródłowej jest jeden wpis z danym 'Numerem' to należy go przepisać do nowej tablicy 2. Jeśli w tablicy źródłowej jest więcej niż jeden wpis z taką samą wartością pola 'Numer' to należy w nowej tablicy utworzyć nowy element, zawierający pola 'Latitude', 'Longitude', 'StartTime' z wartościami z pierwszego w kolejności wpisu z danym 'Numerem' i jednocześnie z polem 'StopTime' o wartości z ostatniego napotkanego wpisu z tym samym 'Numerem'. Jednym słowem chciałbym aby z tej źródłowej tablicy: Kod array(23) { [0]=> array(5) { ["Latitude"]=> string(10) "41.5766784" ["Longitude"]=> string(9) "2.2192276" ["StartTime"]=> string(19) "2015-10-01 08:02:18" ["StopTime"]=> string(19) "2015-10-01 08:05:18" ["Numer"]=> int(2) } [1]=> array(5) { ["Latitude"]=> string(10) "41.5767616" ["Longitude"]=> string(9) "2.2194676" ["StartTime"]=> string(19) "2015-10-01 08:28:02" ["StopTime"]=> string(19) "2015-10-01 08:29:02" ["Numer"]=> int(33) } [2]=> array(5) { ["Latitude"]=> string(10) "41.5767616" ["Longitude"]=> string(9) "2.2194676" ["StartTime"]=> string(19) "2015-10-01 08:29:02" ["StopTime"]=> string(19) "2015-10-01 08:31:50" ["Numer"]=> int(33) } [3]=> array(5) { ["Latitude"]=> string(10) "41.5767616" ["Longitude"]=> string(9) "2.2194676" ["StartTime"]=> string(19) "2015-10-01 08:31:50" ["StopTime"]=> string(19) "2015-10-01 08:31:51" ["Numer"]=> int(33) } uzyskać taką tablicę: Kod array(23) { [0]=> array(5) { ["Latitude"]=> string(10) "41.5766784" ["Longitude"]=> string(9) "2.2192276" ["StartTime"]=> string(19) "2015-10-01 08:02:18" ["StopTime"]=> string(19) "2015-10-01 08:05:18" ["Numer"]=> int(2) } [1]=> array(5) { ["Latitude"]=> string(10) "41.5767616" ["Longitude"]=> string(9) "2.2194676" ["StartTime"]=> string(19) "2015-10-01 08:28:02" ["StopTime"]=> string(19) "2015-10-01 08:31:51" ["Numer"]=> int(33) } Z góry dziękuję za pomoc. Poniżej fragment tablicy. Pozdrawiam ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Foreach,kilka IF i jedziesz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak wiem, próbuje cały czas z Foreach i IF-ami, ale mi same glupoty wychodzą
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Lec po starej tablicy i na podstawie starej tablicy tworz zupelnie nowa tablice. Znaczy ta nowa tablica ma miec strukture co chcesz, tylko bedzie zawierala juz pogrupowane dane.
Jesli w nowej tablicy nie ma danego numer ze starej, to tworz go w nowej Jesli w nowej tablicy jest numer ze starej, to zupdatuj tylko dany element w nowej. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czy mógłbym prosić o pomoc na jakimś przykładzie ? Nie chodzi mi o gotowy kod
![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Hm... opis ktore podalem wyzej to naprawde dwa IF. Czego w nim nie rozumiesz, to wytlumacze ci jasniej
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
1. (Pierwszy IF) Nie wiem jak skopiować element z jednej tablicy wielowymiarowej do drugiej oraz przed skopiowaniem jak sprawdzić czy taki element istnieje
![]() 2. (Drugi IF) Nie wiem jak zupdatować wartość istniejącego elementu w drugiej tablicy ![]() Dziękuję za pomoc ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
jak sprawdzic?
Tworzac elementy w nowej tablicy, jako indekx nadajesz jest wartosc numer ze starej tablicy $nowa[$starynumer] = blabla A potem sprawdzasz: if (isset($nowa[$starynumer])) { //jest } else { //nie ma } Jak skopiowac? $nowa[$starynumer] = $aktualnyelement_z_petli_po_starej; Jak update? $nowa[$starynumer]['Latitude'] = 'nowa wartosc'; itd. z innymi polami. ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
a jak to zrobić w przypadku tablicy wielowymiarowej? bo tutaj będę miał taki przypadek
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No wlasnie to co ci podalem to jest wlasnie wielowymiarowa
Tablica wielowymiarowa niczym sie nie rozni od jednowymiarowej. Obie to tablice, obie maja indeksy. Jedyne co to w wielowymiarowej zamiast pojedynczej wartosci masz kolejna tablice ot co. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 19.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielie dzięki. Wszystko działa jak należy:)
Pozdrawiam ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:27 |