![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
poniżej kod:
powyższy skrypt ma za zadanie usunąć z tablicy $aaa wszystkie zera pod warunkiem że przy tym samym kluczu w $bbb i $ccc także są zera. oczywiście ma to zrobić z zachowaniem kluczy pozostałych wartości. wynik jest następujący: Array ( [0] => 6 [1] => 5 [2] => 4 [4] => 3 [6] => 5 [8] => 3 [9] => 3 ) czyli wszystko byłoby ok gdyby nie to że powstał klucz [9] z powtórzoną wartością dla klucza [8]. wiem jak ją usunąć ale moje pytanie brzmi: skąd wziął się tam klucz [9] i jak poprawić kod aby w ogóle nie powstawał nowy argument poza tymi z $aaa? z góry dziękuję za odp. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Alez trzeba miec fantazje by tak prostą sprawe tak skomplikowac....
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Kod, który podałeś niestety nie działa tak jak byś chciał. Funkcja array_filter filtruje całą tablice, a nie, tak jak Ty chcesz, konkretny element. Powinieneś przed pętlą skopiować zawartość tablicy $aaa do zmiennej $aaviltr i w pętli usuwać z niej elementy, które spełniają warunek używając do tego funkcji unset.
Dziewiąty element pojawia się właśnie dlatego, że funkcja array_filter zwraca tablicę $aaa z usuniętymi zerami, którą Ty zapisujesz w zmiennej $aaviltr. Oprócz tego jest jeszcze jedno przejście pętli, które nie wchodzi w warunek z zerami tylko dopisuje ostatni element do tablicy wynikowej. Jeśli poprawisz tak jak napisałem wyżej problem zniknie. -------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzięki, tyle że w tym momencie tablica $aaviltr gubi klucze. powinno być:
Array ( [0] => 6 [1] => 5 [2] => 4 [4] => 3 [6] => 5 [8] => 3 ) a jest: Array ( [0] => 6 [1] => 5 [2] => 4 [3] => 3 [4] => 5 [5] => 3 ) |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Rety.... no to pomysl chwilke.... chccesz miec klucze to zapisuj klucze....
nie: else {$aaviltr[] = $aaa[$o];} a: else {$aaviltr[$o] = $aaa[$o];} -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
nie za bardzo rozumiem co oznacza "skopiować zawartość tablicy $aaa do zmiennej $aaviltr"
czy mógłbym prosić o info trochę jaśniej? z góry dziękuję. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dostales juz poprawne rozwiazanie. Po co bawisz sie w kolejne?
Jak skopiowac? Normalnie: $aaviltr = $aaa; -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 0 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
i już wszystko wiem
![]() dziękuję. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:13 |