Wartość tablicy ze zmiennej array

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

0

Nie, nie odpowiada. Utworzyłeś tablicę jednowymiarową z trzema elementami, a próbujesz odwołać się do wielowymiarowej.

0

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

0

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.

0

Może chodzi ci o to: $z[$zmienna[0]][$zmienna[1]][$zmienna[2]] ?

0

_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.

0
$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?

0

a czemu zamiast

$zm .='['.$v.']';

nie robisz:

$z .='['.$v.']';

dodanie znaczników <code class="php"> - fp

0

Miało być

$zm .='[\''.$v.'\']';

$z to tablica więc jak ma to działać Twoim zdaniem?

eval czy $$zm nie działa niestety ...

0

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

0
$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?

0
$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";

http://ideone.com/klK8Wy

0

_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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1