Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zrozumieć PHP - tablice
Forum PHP.pl > Forum > Przedszkole
IP!
Być może problem wynika z tego, że PL/SQL czy Java znam lepiej niż PHP, być może wynika to ze składni PHP. Czy ktoś może mi powiedzieć, dlaczego tablice utworzone jako asocjacyjne są inaczej obsługiwane niż te utworzone jako wyliczeniowe?

  1. $a = array(0 => 1, 1 => 2, 2 => 3, 4 => null);
  2. $b = array(1, 2, 3, null);
  3.  
  4. print_r($a); echo "<br>";
  5. print_r($a); echo "<br>";
  6.  
  7. echo "Array key exists: ", array_key_exists(3, $a), "<br>";
  8. echo "Array key exists: ", array_key_exists(3, $b), "<br>";
  9.  
  10. unset($a[2]); print_r($a); echo "<br>";
  11. unset($b[2]); print_r($b); echo "<br>";


Co daje:

  1. Array ( [0] => 1 [1] => 2 [2] => 3 [4] => )
  2. Array ( [0] => 1 [1] => 2 [2] => 3 [4] => )
  3. Array key exists:
  4. Array key exists: 1
  5. Array ( [0] => 1 [1] => 2 [4] => )
  6. Array ( [0] => 1 [1] => 2 [3] => )


Skoro print_r i var_dump zwraca to samo dla dwóch tablic o identycznej zawartości (choć utworzonych w inny sposócool.gif, to czemu array_key_exists i unset działają na nich w inny sposób?
antyqjon
Na początku 2 razy wyświetlasz tablicę $a, więc nie widzisz różnic między nimi. A prawda jest taka, że w tablicy $b klucz o wartości 3 istnieje i ma się dobrze (pokazuje na null) winksmiley.jpg
IP!
Przemęczenie... Dzięki winksmiley.jpg
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.