Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wartość klucza tablicy ze zemiennej
Forum PHP.pl > Forum > Przedszkole
abecadlo
  1.  
  2.  
  3. $k = array('test1', 'test2', '2');
  4.  
  5. $a = array
  6. (
  7. 'test1' => array(
  8. 'test2'=>array(
  9. '1'=>'a',
  10. '2'=>'b'
  11. ),
  12. 'test3' => array(
  13. '3'=>1,
  14. '4'=>2
  15. )
  16. ),
  17. 'kolejny' => array(
  18.  
  19. )
  20. );
  21.  
  22. $wartosc = $a[ $k[0] ][ $k[1] ][ $k[2] ];


zmienna $wartosc w tym przypadku wynosi b.

Chodzi o to, że skrypt sam ustala tablicę $k-wartości,ilość elementów itd, czyli zmienna $wartosc jest cały czas modyfikowana.

Tworzę pętlę:
  1. $zm = '$a';
  2. foreach($k as $key=>$val)
  3. {
  4. $zm .='[\''.$val.'\']';
  5. }


W zmiennej $zm mamy coś takiego jak w zmiennej $wartosc, tyle ze w formie stringa. Eval tutaj nie działa, zresztą nie mogę użyć tej funkcji. Dowiązanie $$zm również nie działa. Jak sobie z tym poradzić?

Greg0
Nie musisz budować zmiennej możesz ją uzyskać krokami w ten sposób:
  1. $wartosc = $a;
  2. foreach($k as $key)
  3. {
  4. $wartosc = $wartosc[$key];
  5. }
  6. var_dump($wartosc);
abecadlo
Prawda, tylko teraz jeszcze jedna sprawa. W jaki sposób ten ostatni key unsetować? aby w tym przypadku zostało tylko:
  1. $a = array
  2. (
  3. 'test1' => array(
  4. 'test2'=>array(
  5. '1'=>'a'
  6. ),
  7. 'test3' => array(
  8. '3'=>1,
  9. '4'=>2
  10. )
  11. ),
  12. 'kolejny' => array(
  13.  
  14. )
  15. );


znowu przy $k = array('test1', 'test2'); cały array test2 zostaje usunięty.
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.