Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wypełnienie pustego miejsca w tablicy
Forum PHP.pl > Forum > PHP
siewca
Mam problemik.
Mam tablicę, której przypisuję elementy w sposób:
  1. $_SESSION['tablica'][$i] = $nowy_element;

Gdy tablica ma np 4 elementy i usunę element np. $_SESSION['tablica'][2] zostanie w tym miejscu luka.

Jest sposób na to aby kolejne elementy tablicy przesunęły się likwidując lukę? przy czym ich indeksy $i zostały zmniejszone o 1?
blooregard
Lecisz for-em po całej tablicy (po usunięciu elementu) i jako ...[$i]... wstawiasz iterator tego for-a.
siewca
Można prosić o jakiś przykładzik. Nie za bardzo czaję.
webdice
Cytat(siewca @ 1.03.2010, 13:42:53 ) *
Można prosić o jakiś przykładzik. Nie za bardzo czaję.


Proszę bardzo - foreach.
siewca
Zastosowałem ową pętlę:
  1.  
  2. $i = 0;
  3. foreach($_SESSION['townazwa'] as $wartosc) {
  4. $_SESSION['townazwa'][$i] = $wartosc;
  5. $i++;
  6. }

Przesuwa kolejne wartości wypełniając lukę, jednak działa poprawnie tylko gdy zostanie usunięty ostatni element z tablicy.
A gdy usuniemy pierwszy czy środkowy to kolejny element kopiuje się na jego miejsce dając powtarzające się wyniki.
np. A, B, C gdy usuwam B otrzymuję A, C, C a powinienem A, C
nospor
ale kombinujecie winksmiley.jpg
  1. $_SESSION['tablica'] = array_values($_SESSION['tablica']);

siewca
Dzięki nospor. Działa oczywiście smile.gif Genialna funkcja.
Pozdrawiam
nospor
a tak z ciekawości: po co ci usuwanie tej luki?
siewca
Mam tabelkę z dodawaniem towaru do faktury, coś na styl:
Towar|Kod|Ilość|Cena |usuń
Towar|Kod|Ilość|Cena |usuń
Towar|Kod|Ilość|Cena |usuń
+dodaj kolejny+

Chodzi o to aby po wciśnięciu +dodaj kolejny+ dodawały się kolejne wiersze w tabeli na towar. A przycisk usuń usuwał tylko ten wiersz przy którym się znajduje. Aby po wciśnięciu któregoś z tych przycisków nie stracić danych z pól które już uzupełniliśmy skrypt napisany w Ajaxie przekazuje "na żywo" dane z tych pól tekstowych do skryptu php który zapisuje wszystko w tablicy w Sesji.
Po wciśnięciu usuń usuwały się wartości w tablicy przypisane do odpowiedniego wiersza w tabeli, jednak na formularzu zostawało puste pole, a chciałem aby kolejny towar na nie wskoczył.

Bardzo ciężko to opisać, nie wiem czy będziesz wiedział o co mi chodzi blinksmiley.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.