Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wartość klucza tablicy ze zemiennej
-abecadlo-
post
Post #1





Goście







  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ć?

Go to the top of the page
+Quote Post
Greg0
post
Post #2





Grupa: Zarejestrowani
Postów: 264
Pomógł: 54
Dołączył: 31.08.2007
Skąd: Tychy

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


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);


Ten post edytował Greg0 21.09.2013, 16:02:00
Go to the top of the page
+Quote Post
-abecadlo-
post
Post #3





Goście







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.
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: 16.10.2025 - 20:04