Stránka 1 z 1

[PHP] zápis do pole

Odeslat příspěvekNapsal: 6. 11. 2007 18:40
od Nik
Ahoj, potřeboval bych trochu poradit, mám vícerozměrné pole, asi takovéto:
Kód: Vybrat vše
$xy = Array
(
    [1] => Array
        (
            [name] => cokoli
            [Id] => 1
            [lvl] => 0
            [up] =>
            [sub] => Array
                (
                )

        )

    [2] => Array
        (
            [name] =>  folder
            [Id] => 2
            [lvl] => 0
            [up] =>
            [sub] => Array
                (
                    [3] => Array
                        (
                            [name] => Program
                            [Id] => 3
                            [lvl] => 1
                            [up] => 2
                            [sub] => Array
                                (
                                )

                        )
)


a potřebuji do toho zapsat něco jako $xy[2]['sub]['3']['sub'][4] = array(...),
ale to co je tučně, to neznám, ale mohu si to zjistit, takže v jiné proměnné budu mít $z= "[2]['sub]" a to potřebuji nějak s tím co znám spojit tak aby to bralo pole, když provedu zápis $xy{$z}['3']['sub'][4] tak se to vyhodnotí jako $xy[[2]['sub]]['3']['sub'][4] nebo nějakej nápad jak k tomu dynamicky přistoupit a zapsat do toho?

Odeslat příspěvekNapsal: 6. 11. 2007 18:45
od K8
to chce mit ve dvou promennych
Kód: Vybrat vše
$p1=2;
$p2='sub';
a odkazovat takto:
$xy[$p1][$p2]['3']['sub'][4] = array(...);

Odeslat příspěvekNapsal: 6. 11. 2007 22:09
od mbing
Někde máš klíč sub a někde 'sub', tak to jsem z toho jelen. Pro 'sub' je to takto:
Kód: Vybrat vše
$p1 = 2 ;
$p2 = "'sub'" ;
$xy[$p1][$p2]['3']['sub'][4] = array () ;

Odeslat příspěvekNapsal: 6. 11. 2007 22:11
od Nik
asi jsem se špatně vyjádřil, těch vnoření tam může být více, to předem nevím, takže tímhle způsobem to udělat nejde

Odeslat příspěvekNapsal: 12. 11. 2007 22:17
od 2ge
napis si na to rekurizvnu funkciu, is_array ti pomoze.