» »

PHP n-število gnezdenj v arrayu

PHP n-število gnezdenj v arrayu

Hexx ::

Pozdravljeni,

soočil sem se z problemom v PHP-ju kjer sem imel naslednje podatke:
- $data -> kamor se shrani html
- $children -> array childov, npr: array('first level', 'second level', 'third')
- $html -> podatek ki ga želim spravit v zadnjega childa

Childov je lahko poljubno število, kako spraviti podatek v zadnjega childa?
Željen rezultat: $data['first]['second]['third'][0] == $html;

Prišel sem do rešitve, zanime me pa vaše mnenje ali obstaja kakšna druga/boljša rešitev:

$data = array();
$data = array();
$children = array('first', 'second', 'third', 'fifth', 'sixth');
$html = 'Some data..';

$level = &$data;
foreach ($children as $child) {
  $level[$child] = array();
  $level = &$level[$child];
}
$level[] = $html;

smacker ::

HTML ima drevesno strukturo, ki se najlažje obdeluje z rekurzivnimi funkcijami ;)
PS: drevo se da lepše predstavit kot pa z n-dimensional arrayi, obstajajo pa tudi knjižnice za parsanje/kreiranje HTML kode, da ne rabiš tega na roke počet ;) Google: "tree data structure" in "PHP HTML DOM"

MisterR ::

Tak kot si naredil je ok, ampak skušaj uporabljati PHP metode. V tem primeru array_push().
http://php.net/manual/en/function.array...

Hexx ::

Kul rešitev tudi ta, thanks :)

technolog ::

array_push je antipattern.

Naj raje uporablja vgrajen konstrukt:

$array[] = $element


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

php dodajanje ključ array

Oddelek: Programiranje
6664 (543) DeeJay
»

PHP - array in IF statement

Oddelek: Programiranje
11778 (669) Vanquish
»

Nakupovalni voziček, seje in update količine?

Oddelek: Izdelava spletišč
51324 (1136) phyro
»

[PHP+HTML]Vprasanje glede forme s comboboxi

Oddelek: Programiranje
161453 (1272) cobrica
»

java jsp captcha servlet

Oddelek: Programiranje
5630 (571) BRBR

Več podobnih tem