Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablica - usuwanie kilku kluczy z tablicy.
piotrku
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.03.2005

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


Witam mam taki problem:

Jest sobie tablica:

  1. <?php
  2. $dane = array (
  3. &#092;"0\" => \"zero\",
  4. &#092;"1\" => \"jeden\",
  5. &#092;"2\" => \"dwa\",
  6. &#092;"3\" => \"trzy\",
  7. &#092;"4\" => \"cztery\",
  8. &#092;"5\" => \"piec\"
  9. );
  10. ?>


Oraz druga tablica z numerami kluczy, które mają zostać usunięte, np.:

  1. <?php
  2. $del = array (
  3.  &#092;"0\" => \"2\",
  4.  &#092;"1\" => \"4\"
  5. );
  6. ?>


Chciałem usunąć wybrane klucze korzystając z pętli:

  1. <?php
  2. for($i = 0; $i <= count($del) - 1; $i++) {
  3.  array_splice($dane, $del[$i], 1);
  4. }
  5. ?>


ale po usunięciu jednego klucza cała tablica zmienia się (numery
kluczy się zmieniają) co uniemożliwia usunięcie dokładnie tych które chcę.

I pytanie, w jaki sposób mogę usunąć kilka/kilkanaście kluczy z tablicy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
pillot
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 9.05.2004
Skąd: Puszów

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


Użyj funkcji unset().

  1. <?php
  2. $dane = array (
  3. &#092;"0\" => \"zero\",
  4. &#092;"1\" => \"jeden\",
  5. &#092;"2\" => \"dwa\",
  6. &#092;"3\" => \"trzy\",
  7. &#092;"4\" => \"cztery\",
  8. &#092;"5\" => \"piec\"
  9. );
  10.  
  11. $del = array (
  12.  &#092;"0\" => \"2\",
  13.  &#092;"1\" => \"4\"
  14. );
  15.  
  16. for($i = 0; $i <= count($del) - 1; $i++) {
  17.  unset($dane[$del[$i]]);
  18. }
  19. ?>


Ten post edytował pillot 12.03.2005, 14:32:37
Go to the top of the page
+Quote Post
piotrku
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.03.2005

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


Kurczę, a próbowałem to robić unset'em tylko się głupio machłem :/
Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
bendi
post
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


array_diff" title="Zobacz w manualu PHP" target="_manual
Moze tak:
  1. <?php $dane = array (
  2. &#092;"0\" => \"zero\",
  3. &#092;"1\" => \"jeden\",
  4. &#092;"2\" => \"dwa\",
  5. &#092;"3\" => \"trzy\",
  6. &#092;"4\" => \"cztery\",
  7. &#092;"5\" => \"piec\"
  8. );
  9.  
  10. $del = array (
  11.  &#092;"0\" => \"2\",
  12.  &#092;"1\" => \"4\"
  13. );
  14.  
  15. print_r( array_diff( array_keys( $dane ), array_keys( $del ) ) );
  16. ?>
Go to the top of the page
+Quote Post
piotrku
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.03.2005

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


Bardziej chyba tak:

  1. <?php
  2. print_r( array_diff( array_keys( $dane ), array_values( $del ) ) );
  3. ?>


Ale i tak trzeba to jakoś "unsetować"...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 22:30