Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie rekordu z tablicy.
Van Pytel
post 8.08.2011, 09:46:31
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

Ostrzeżenie: (0%)
-----


Otóż mam plik który wygląda tak:

  1. <?
  2.  
  3. $tablica = array(
  4. '1' => "qwe",
  5. '2' => "asd",
  6. '3' => "zxc",
  7. '4' => "123",
  8. )
  9.  
  10. ?>


I teraz chciałbym usunąć jakiś rekord z tej tablicy (np: '2' => "asd", ) tak aby plik wyglądał tak:

  1. <?
  2.  
  3. $tablica = array(
  4. '1' => "qwe",
  5. '3' => "zxc",
  6. '4' => "123",
  7. )
  8.  
  9. ?>



Jak mogę tego dokonać? Pewnie kłania się wyrażenie regularne, aby wyszukać element który chce usunąć i potem go usunąć. Niestety na wyrażeniach się nie znam, dlatego proszę o waszą pomoc smile.gif

Dzięki za odpowiedź.
Go to the top of the page
+Quote Post
nospor
post 8.08.2011, 09:49:59
Post #2





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




unset($tablica[2]);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Van Pytel
post 8.08.2011, 10:16:40
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

Ostrzeżenie: (0%)
-----


Właśnie ten sposób nie zadziała.

Inaczej napisze. Mam kod który mi tworzy tablice:

  1. //tworze nagłówek pliku
  2. $data = "<?php \$tablica = array(";
  3.  
  4. //pobieranie danych z bazy
  5. // potem petla ktora wypisuje rekordy:
  6. $data .= " '".$row['id']."' => \"$key\", ";
  7.  
  8. //zamykamy petle i zamykamy plik
  9. $data .= ") ?>";
  10.  
  11. //potem zapisuje do pliku
  12.  
  13. $file = 'test.php';
  14. $current = $data;
  15. file_put_contents($file, $current);


Może dziwny kod, ale mi odpowiada smile.gif

Wczytywanie i dodawanie na koniec też mam ładnie zrobione i działa, teraz chciałbym usunąć z tej tablicy element. Dlatego unset nie zadziała, bo muszę wczytać tablice > wyszukać > usunąć element > zapisać tablice na nowo do pliku, już bez tego rekordu co usunąłem.

Oczywiście przy kasowaniu klucz znam, ale nie znam wartości, więc trzeba jakoś wyszukać i skasować po kluczu.

Ten post edytował Van Pytel 8.08.2011, 10:18:24
Go to the top of the page
+Quote Post
nospor
post 8.08.2011, 10:20:58
Post #4





Grupa: Moderatorzy
Postów: 36 477
Pomógł: 6301
Dołączył: 27.12.2004




Cytat
$data = "<?php \$tablica = array(";

//pobieranie danych z bazy
// potem petla ktora wypisuje rekordy:
$data .= " '".$row['id']."' => \"$key\", ";

//zamykamy petle i zamykamy plik
$data .= ") ?>";

Przecież to nie jest tablica a tekst...



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Van Pytel
post 8.08.2011, 10:42:10
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

Ostrzeżenie: (0%)
-----


Ok może być i tekst, ale nie zmienia faktu, że wtedy plik wygląda tak:
Cytat
<?

$tablica = array(
'1' => "qwe",
'2' => "asd",
'3' => "zxc",
'4' => "123",
)

?>


wtedy include i ładnie mogę czytać tą "tablice" ($tablica["$id"]wink.gif.

To jak mogę usunąć taki "tekst"
Go to the top of the page
+Quote Post
bastard13
post 8.08.2011, 10:56:54
Post #6





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


http://php.net/manual/en/function.preg-replace.php
Coś w stylu:
  1. $data = preg_replace('/' . $id . ' => "[a-z0-9]+",/','',$data);

Pisane na szybko i pewnie się gdzieś wysypie, ale chodzi mniej więcej o coś takiego.
Mimo wszystko takie kombinacje nie są czymś ładnym i moim zdaniem powinieneś zmienić coś w kodzie, a nie bawić się w takie operacje.


--------------------
Go to the top of the page
+Quote Post
Van Pytel
post 9.08.2011, 12:13:30
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 6
Dołączył: 3.03.2010

Ostrzeżenie: (0%)
-----


Dzięki za pomoc smile.gif Zrobiłem jednak inaczej smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.06.2024 - 08:43