Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]usuwanie pojedynczych pól w tablicy wielowymiarowej
KFMon
post 9.06.2017, 09:52:44
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.11.2013

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


Witam,
temat usuwania elementów z tablic wielowymiarowych jest przerobiony niejednokrotnie, niby wiem jak to się robi ale coś nie działa.

tablica wygląda następująco:
  1. (
  2. [0] => Array
  3. (
  4. [punkt] => jeden
  5. [podpunkts] => Array
  6. (
  7. [0] => Array
  8. (
  9. [podpunkt] => raz - jeden a
  10. [podid] =>0
  11. )
  12. [1] => Array
  13. (
  14. [podpunkt] => dwa - jeden b
  15. [podid] => 1
  16. )
  17. )
  18. )
  19. [1] => Array
  20. (
  21. [punkt] => dwa
  22. [podpunkts] => Array
  23. (
  24. [0] => Array
  25. (
  26. [podpunkt] => raz - dwa a
  27. [podid] => 2
  28. )
  29.  
  30. [1] => Array
  31. (
  32. [podpunkt] => dwa - dwa b
  33. [podid] => 3
  34. )
  35. )
  36. )

itd...
pętle w skrócie wyglądają następująco:
  1. <?php
  2. foreach($punkt as $pid => $punkty) //$pid - id punktu
  3. {
  4. echo punkty['punkt'];
  5.  
  6. foreach ($punkty['podpunkts'] as $podid => $podpunkty) // $podid - id podpunktu
  7. {
  8. echo $podpunkty['podpunkt']; ?>
  9. <button type="submit" name="remove" value="<?php echo $podid; ?>">Remove</button>
  10. }
  11. }

usunięcie całego jednego punktu ze wszystkimi podpunktami nie stanowi dla mnie problemu. problem stanowi usuwanie pojedynczych rekordów (podpunktów) używając przycisku lub linku (bez różnicy) np podpunktu "dwa dwa b" z tablicy:
  1. [1] => Array
  2. (
  3. [podpunkt] => dwa - dwa b
  4. [podid] => 3
  5. )

funkcja usuwająca:
  1. <?php
  2. if(isset($_POST['remove']))
  3. {
  4. $key = $_GET['remove'];
  5. unset ($punkty['podpunkts'][$key]);
  6. }
  7. ?>

Z góry dziękuję za porady co nie tak jest z funkcją usuwającą.
Go to the top of the page
+Quote Post
nospor
post 9.06.2017, 09:59:20
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie mieszaj angielskiego z polskim w nazwach bo fatalnie to wyglada :/

unset ($punkty['podpunkts'][$key]);
Przeciez twoja tablica ma jeszcze na poczatku indeksy 0, 1 .... i jakos nie widze bys sie do nich tu odwolywal


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

"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

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: 8.07.2025 - 01:00