Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JSON usuwanie danych
Forum PHP.pl > Forum > PHP
lukaskolista
Witam. Mam taki oto obiekt JSON
  1. {"nextId":3,"data":[
  2. {"id":1,"userName":"lukaskolista","content":"1","time":"2010-10-03 21:08:45"},
  3. {"id":2,"userName":"lukaskolista","content":"2","time":"2010-10-03 21:08:48"}
  4. ]}

pobieram go nastepujaco
  1. $file = file_get_contents('json.txt');
  2. $json = json_decode($file);

jak usunac z niego 1 element tablicy data?
CuteOne
Rozumiem, że funkcja json_decode wrzuca treść pliku do tablicy? Jeżeli tak to przeleć tablice pętlą usuń dany element używając unset() i zapisz wynik z powrotem do pliku
lukaskolista
  1. unset($json->data[0]);

to powoduje, ze przy ponownym zapisie do pliku data z tablicy staje sie obiektem, nie mam pojecia czemu, bo gdy przed zapisem wyswietlam ja przez var_dump() wszystko jest ok
CuteOne
Hmm trochę na około ale może naprowadzi Cię na rozwiązanie ;]
  1.  
  2. foreach($json as $a => $list) {
  3.  
  4. $list = trim($list);
  5.  
  6. if($list == "nazwa indexu do usuniecia") { $index = $a; break; }
  7. }
  8.  
  9. unset($json[$index]);
  10.  
  11. foreach($json as $list) $txt .= trim($list)."<br>"; // tu wstaw coś do tworzenia nowej tablicy zamiast stringa
  12.  
  13. echo $txt;


ps. to jest do tablicy jednowymiarowej dla większej ilości wymiarów trzeba dodać kolejne pętle
lukaskolista
nie chodzi mi o to, ktory index usuwac, tylko dlaczego po usunieciu ktoregokolwiek zapisuje tablice jako obiekt
paxton
Dodaj drugi argument TRUE do json_decode, wtedy bedziesz miec array nie obiekt. Czytaj dokumentacje
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.