$zmienna = array('test', 'a', '1');
Powyższy zapis odpowiada przykładowo:
$z['test']['a'][1]
Teraz chciałbym na tej wartości z tablicy pracować, da się jakoś do niej dostać?
$zmienna = array('test', 'a', '1');
Powyższy zapis odpowiada przykładowo:
$z['test']['a'][1]
Teraz chciałbym na tej wartości z tablicy pracować, da się jakoś do niej dostać?
Nie, nie odpowiada. Utworzyłeś tablicę jednowymiarową z trzema elementami, a próbujesz odwołać się do wielowymiarowej.
zle
powyzszy zapis odpowiada
$z {
[0]=> "test"
[1]=> "a"
[2]=>1
}
a dostajesz sie do wartosci poprzez
$z[0]; //to da ci dostep do test
$z[1]; //to da ci dostep do a
$z[2]; //to da ci dostep do 1
dodanie znaczników <code class="php"> - fp
Zmienna $z jest zupełnie inna, może być $b, $a coś innego po prostu, ale klucze po kolei mam zapisane w $zmienna, aby wiedzieć do której wartości funkcja ma się odwołać - array_walk.
Może chodzi ci o to: $z[$zmienna[0]][$zmienna[1]][$zmienna[2]]
?
_13th_Dragon, dokładnie, tylko jest jeden problem. Ja dałem tylko przykład arraya, nie mogę na stałe zapisać tak jak Ty to wykonałeś - mogą być 2 wartości, mogą być 40, po prostu skrypt ma sam wykonywać dowiązania.
$zm = '$z';
foreach($zmienna as $k=>$v)
{
$zm .='['.$v.']';
}
tylko jak zrobić, aby wartość z $zm była odwołaniem do prawdziwej zmiennej, bo jak na razie reprezentuje string?
a czemu zamiast
$zm .='['.$v.']';
nie robisz:
$z .='['.$v.']';
dodanie znaczników <code class="php"> - fp
Miało być
$zm .='[\''.$v.'\']';
$z to tablica więc jak ma to działać Twoim zdaniem?
eval czy $$zm nie działa niestety ...
dalej nie do konca wiem o co ci chodzi wiec zgaduje ze chcesz utworzyc tablice $zm zaindeksowana zmiennymi ktore sa w tablicy zmienna.
$zm = '$z';
foreach($zmienna as $k=>$v)
{
$zm[$v] = "" //ale nie mam pojecia jakie wartosci chcesz wpisac
//$zm mozesz zamienic na $z bo nie wiem ktora tablica jest docelowa
}
dodanie znacznika <code class="php"> - fp
$k = array('test1', 'test2', '2');
$a = array
(
'test1' => array(
'test2'=>array(
'1'=>'a',
'2'=>'b'
),
'test3' => array(
'3'=>1,
'4'=>2
)
),
'kolejny' => array(
)
);
$wartosc = $a[ $k[0] ][ $k[1] ][ $k[2] ];
zmienna $wartosc w tym przypadku wynosi b.
Teraz chodzi o to, że skrypt sam ustala tablicę $k-wartości,ilość elementów itd. Teraz jaśniej?
$k = array('test1', 'test2', '2');
$a = array
(
'test1' => array(
'test2'=>array(
'1'=>'a',
'2'=>'b'
),
'test3' => array(
'3'=>1,
'4'=>2
)
),
'kolejny' => array(
)
);
$wartosc = $a[ $k[0] ][ $k[1] ][ $k[2] ];
echo $wartosc."\n";
$wartosc=$a;
foreach($k as $i) $wartosc=$wartosc[$i];
echo $wartosc."\n";
_13th_Dragon super, rozumiem, dzięki. Tylko teraz jeszcze jedna sprawa. W jaki sposób ten ostatni key unsetować? aby w tym przypadku zostało tylko:
$a = array
(
'test1' => array(
'test2'=>array(
'1'=>'a'
),
'test3' => array(
'3'=>1,
'4'=>2
)
),
'kolejny' => array(
)
);
znowu przy $k = array('test1', 'test2');
cały array test2 zostaje usunięty.