Przebuduj klucze tablicy po zresetowaniu elementów
Mam tablicę:
$array = array(1,2,3,4,5);
Gdybym zrzucił zawartość tablicy, wyglądałyby tak:
array(5) {
[0] => int(1)
[1] => int(2)
[2] => int(3)
[3] => int(4)
[4] => int(5)
}
Kiedy iteruję i zrzucam określone klucze, indeks rośnie.
foreach($array as $i => $info)
{
if($info == 1 || $info == 2)
{
unset($array[$i]);
}
}
Następnie, gdybym miał teraz wykonać kolejny zrzut, wyglądałoby to tak:
array(3) {
[2] => int(3)
[3] => int(4)
[4] => int(5)
}
Czy istnieje poprawny sposób zresetowania tablicy tak, aby jej elementy były ponownie zerowe?
array(3) {
[0] => int(3)
[1] => int(4)
[2] => int(5)
}
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
9 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Za pomocą
array_values()
http://php.net/manual/en/function.array-values.php
Anonimowy użytkownik
Potwierdzenie od:
Klucze $ array zostały teraz wyczyszczone.
Anonimowy użytkownik
Potwierdzenie od:
Próbka robocza tutaj
http://ideone.com/liyoh
.
Anonimowy użytkownik
Potwierdzenie od:
Tylko dodatek.
>
Wiem co to jest
stary
ale chciałem dodać rozwiązanie, którego sam nie widzę. Znalazłem to pytanie podczas szukania innego rozwiązania i właśnie sobie uświadomiłem: „Cóż, póki tu jestem”.
Najpierw odpowiedź
Nil
https://coderoad.ru/5943149/
ładny i świetny w użyciu po uruchomieniu pętli, jednak wolałbym wykonać całą pracę na raz. Oczywiście w moim przypadku musiałem to zrobić
jeszcze
działa niż ten prosty przykład tutaj, ale metoda nadal ma zastosowanie. Widziałem, gdzie kilka innych osób zasugerowało pętle , ale to nadal Cię opuszcza
po pracy
ze względu na naturę bestii. Zwykle sugeruję prostsze rzeczy, takie jak , ale w tym przypadku najlepiej jest zapamiętać dobrą, starą logikę . Po prostu użyj
! Aby zachować odpowiedni indeks, po każdym usunięciu elementu tablicy odejmij od .
Oto mój prosty,
pracujący
przykład:
Wyświetli:
Może to mieć wiele prostych implementacji. Na przykład mój dokładny przypadek wymagał przechowywania ostatniego elementu w tablicy opartej na wartościach wielowymiarowych. Pokażę ci, co mam na myśli.:
Wyświetli:
Jak widać, manipuluję $ i przed splataniem, ponieważ próbuję usunąć poprzedni element, a nie bieżący.
Anonimowy użytkownik
Potwierdzenie od:
Więc wszystko, co musisz zrobić, to ...
... a teraz twoja nie zawiera wartości, które umieściłeś w i klucze są resetowane
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: