Portál AbcLinuxu, 25. dubna 2024 06:08


Dotaz: Jak definovat pole v PHP

29.12.2017 23:55 Honza
Jak definovat pole v PHP
Přečteno: 518×
Odpovědět | Admin
Ahoj, neví někdo o funkci, která by tohle dokázala vypsat takový seznam (ul/li)? Každá položka obsahuje ID, Title a Link. Hledám to už fruhý den jelikož to nedokážu naprogramovat ale pro neomezenou úroveň jsem nenašel lautr nic. Dík za pomoc.
ItemName
      ItemName
      ItemName
            ItemName
      ItemName
      ItemName
ItemName
      ItemName
            ItemName
            ItemName
                  ItemName
                  ItemName
                        ItemName
                        ItemName
                  ItemName
                  ItemName
            ItemName
      ItemName
      ItemName
ItemName
      ItemName
      ItemName
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.12.2017 01:37 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem něco našel, ale nejde to sem vložit

Tady je PHP kód

https://pastebin.com/23WgXguY

A tady je výstup

https://pastebin.com/xaDZ66Kd

Kód funguje ale vypisuje to navíc ul, názvy atd.. Nevidí tam nějaký profík chybu? Dík
30.12.2017 06:55 .
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin

Asi nějak, ať tam je ta struktura, ne?

<?php

$array = [
	["url"=>"aaa", "name"=>"AAA"],
	["url"=>"bbb", "name"=>"BBB"],
	["url"=>"ccc", "name"=>"CCC",
		"children"=>[
			["url"=>"ddd", "name"=>"DDD",
				"children"=>[
					["url"=>"eee", "name"=>"EEE"]
				]
			]
		]
	],
	["url"=>"fff", "name"=>"FFF"],
	["url"=>"ggg", "name"=>"GGG"]
];

function makeList($array){
	$output = '<ul>';
	foreach ($array as $item){
		$output .= '<li><a href="'.$item['url'].'">'.$item['name'].'</a></li>';
		if (!empty($item['children']))
			$output .= makeList($item['children']);
	}
	$output .= '</ul>';
	return $output;
}

echo makelist($array);
30.12.2017 12:46 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Děkuji moc, ale nejde opravit to původní? Chci zachovat moji strukturu, položek je cca 600, mysql nemám ani nechci a pokud bych měl ve struktuře vytvářet children, ztratím se už při 5 položce. :-( Děkuji.
$array = [] ;
$array["aaa"]               = ["url"=>"aaa", "name"=>"AAA"];
$array["bbb"]               = ["url"=>"bbb", "name"=>"BBB"];
$array["ccc"]               = ["url"=>"ccc", "name"=>"CCC"];
$array["ccc"]["ddd"]        = ["url"=>"ddd", "name"=>"DDD"];
$array["ccc"]["ddd"]["eee"] = ["url"=>"eee", "name"=>"EEE"];
$array["fff"]               = ["url"=>"fff", "name"=>"FFF"];
$array["ggg"]               = ["url"=>"ggg", "name"=>"GGG"];
30.12.2017 13:29 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Navykl jsem si skládat strukturu obráceně:
$aaa = ["url"=>"aaa", "name"=>"AAA"];
$bbb = ["url"=>"bbb", "name"=>"BBB"];
$eee = ["url"=>"eee", "name"=>"EEE"];
$ddd = ["eee"=>$eee, "url"=>"ddd", "name"=>"DDD"];
$ccc = ["ddd"=>$ddd, "url"=>"ccc", "name"=>"CCC"];
$fff = ["url"=>"fff", "name"=>"FFF"];
$ggg = ["url"=>"ggg", "name"=>"GGG"];
$array = ["aaa"=>$aaa, "bbb"=>$bbb, "ccc"=>$ccc, "fff"=>$fff, "ggg"=>$ggg];
Takhle s písmenky to moc nevynikne, ale když použiješ vhodné názvy, tak je to velmi přehledné.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
30.12.2017 22:45 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Je to přehledné, ale problém zůstává, jak to vypsat.
30.12.2017 13:32 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Ještě malá otázka: Proč to ukládáš do pole místo do DOMu, který ti pak sám vygeneruje hotové HTML?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
30.12.2017 22:47 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
A jak se to ukládá do DOMu? Můžeš dát ukázku pro totálního laika?
31.12.2017 03:09 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1.1.2018 21:37 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Líp mi neporadíš?
1.1.2018 21:42 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Vždyť tam máš přímo příklady použití. Stačí jen odrolovat trochu níž.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1.1.2018 21:44 Honza
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Problém je, že nevím co mám hledat :(
30.12.2017 07:03 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak definovat pole v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to formát YAML. Zkus tedy funkci yaml_parse() nebo yaml_parse_file()
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.