Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie elementu z tablicy.
Forum PHP.pl > Forum > Przedszkole
Janek111
W jaki sposob mozna usunąć wybrany element z tablicy?
array_pop usuwa element z konca tablicy, a ja chce usunac przykladowo 3 element.

Pozdrawiam smile.gif
nospor
unset($tablica[...]),
np.
unset($tablica[2])
Janek111
Moze konkretniej napisze. Mam skrypt ktory usuwa zdjecia. W formularzy wybiera sie zdjecie do usuniecia. Nazwy zdjec są odczytywane z pliku - w pliku nazwy zdjec sa polaczone razem z komentarzami.
No i jak sie juz nacisnie przycisk usun to z katalogu ze zdjeciami usuwa sie zdjecie odpowiednie i wszystko jest ok. Problem zaczyna się kiedy musze usunąć z pliku odpowiednią nazwe zdjecia wraz z komentarzem.

Skrypt wyglada tak:

  1. <?php
  2.  
  3. $lokalizacja = $DOCUMENT_ROOT.&#092;"strona1/zdjecia/$dzial\";
  4. for($i=0; $i<count($nr); $i++){
  5. unlink($lokalizacja.&#092;"/big/\".$nr);
  6. unlink($lokalizacja.&#092;"/thumbs/\".$nr);
  7. }
  8. if(!($fp = fopen(&#092;"../\".$dzial.'.txt', 'r+')))
  9. die(&#092;"Nie można wczytać komentarzy!\");
  10. while (!feof ($fp)) {
  11. $comment .= fgets($fp, 1024);
  12. }
  13. $comment = explode ('|', $comment);
  14. $usun_img = array_search( $nr, $comment);
  15. unset( $comment[$usun_img - 1] );
  16. unset( $comment[$usun_img] );
  17. for($i = 0; $i<count($comment); $i++){
  18. if($comment[$i] == '')continue;
  19.  $zapisz .= $comment[$i].&#092;"|\";
  20. }
  21. fclose($fp);
  22. if(!($fp = fopen(&#092;"../\".$dzial.'.txt', 'w+')))
  23. die(&#092;"Nie można wczytać komentarzy!\");
  24. fwrite($fp, $zapisz);
  25. fclose($fp);
  26. powrot();
  27.  
  28. ?>


Plik przykladowo wygląda tak:

Komentarz1|13.jpg|Komentarz2|15.jpg|Komentarz3|2.jpg|

No i kiedy usune tym skryptem przykladowo zdjecie 15.jpg, to plik zamiast wygladac tak:

Komentarz1|13.jpg|Komentarz3|2.jpg|


to wyglada tak:
Komentarz1|13.jpg|Komentarz3|


Nie bardzo wiem o co w tym chodzi, czemu tak dziwnie sie robi...
nospor
Napisalem taki skrypcik. Dopasuj se go do siebie.
  1. <?php
  2.  
  3. $comment[0]='a';
  4. $comment[1]='b';
  5. $comment[2]='c';
  6. $comment[3]='d';
  7. $search='c';//poszukiwana wartość
  8. reset($comment);
  9. while ($act=next($comment))
  10. {
  11. if ($act==$search) {$key1=key($comment);prev($comment);$key2=key($comment);unset($comment[$key1]);unset($comment[$key2]);break;}
  12. }
  13.  
  14.  
  15. ?>
Janek111
No to wrzucilem ten skrypt co podales i sprobowalem usunac jakies przykladowe zdjecie. Jak juz usunalem to sprawdzilem plik z komentarzami, i oprocz skasowanego obrazka z komentarzem usuwa tez ostatni element tablicy.
Nie wiem o co chodzi, troche bezsensu.
nospor
zadaniem tego skryptu jest kasowanie szukanego i poprzedniego. mi ten skrypt dziala. MOze źle go wykorzystaleś. POkaż jeszcze raz kod z tym skryptem
Janek111
Już zrobilem i działa tylko to jest troche bezsensu biggrin.gif:D Ale wazne ze dziala.
zrobiłem count($comment) + 1 i wszystko OK.
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.