Intereting Posts
Неустранимая ошибка: Непринятая ошибка: вызов неопределенной функции mysql_connect () Почему мой цикл foreach работает не так, как ожидалось? Отправить unicode emoji с помощью PHPMailer htaccess перенаправляет любые URL-адреса, заканчивающиеся на .php для индексации cURL с использованием нескольких прокси-серверов в цепочке Каков наилучший способ создания whois-поиска? Получение результатов запроса из двух таблиц db, даже если вторая таблица не имеет соответствующих записей open dompdf в новой вкладке данные взятые с данной страницы HTML-форма PHP post для самостоятельной проверки или отправки на новую страницу Флажок и проверка всех функций в Datatable JQuery PHP Mysql mysql real escape string и Cookies Включить / отключить кнопку отправки на основе переключателей Пользовательская кнопка Paypal от Braintree Неустранимая ошибка: вызов функции-члена get () для не-объекта в C: \ wamp \ www \ ci \ application \ models \ site_model.php в строке 6 .php Случайное изображение служило .jpg на внешнем сайте

3-уровневый массив в php для организации данных

Я хочу создать трехуровневый массив в php, с примерами данных для разработки целей, у меня есть следующее:

$data = array( array(1 => array("A ROW GREENS", array( "A1" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A2" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A3" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg") ))), array(2 => array("A ROW BLUE",array( "A1" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A2" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A3" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg") ))), ); 

Как вы можете видеть, это структура:

 Element:[ID -> Title][IDSubitem1->URL, IDSubitem2->URL2...] Element:[ID -> Title][IDSubitem1->URL, IDSubitem2->URL2...] Element:[ID -> Title][IDSubitem1->URL, IDSubitem2->URL2...] 

Мне нужно напечатать <ul> с заголовками (используя идентификатор для их идентификатора) и распечатать теги <ul> для отображения или скрытия подпунктов или выбранного родителя.

 <ul id="parent"> <li id="1">A ROW GREENS</li> <li id="2">A ROW BLUE</li> </ul> <ul id="child1"> <li id="child1-A1">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> <li id="child1-A2">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> <li id="child1-A3">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> </ul> <ul id="child2"> <li id="child2-A1">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> <li id="child2-A2">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> <li id="child2-A3">http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg</li> </ul> 

Вы можете достичь ожидаемого результата, как показано ниже:

 <?php $data = array( array(1 => array("A ROW GREENS", array( "A1" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A2" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A3" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg") ))), array(2 => array("A ROW BLUE",array( "A1" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A2" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg"), "A3" => array("http://img.ruphp.com/php/kitchen_adventurer_cheesecake_brownie.jpg") )))); $parent_data = ''; $child_data = ''; foreach($data as $dat){ foreach($dat as $key=>$da){ $parent_data .="<li id ='".$key."'>".$da[0]."</li>"; $child_data .="<ul id='child".$key."'>"; foreach ($da[1] as $k=>$v){ $child_data .="<li id='child".$key."-".$k."'>".$v[0]."</li>"; } $child_data .="</ul>"; } } ?> <ul id="parent"><?php echo $parent_data;?></ul><?php echo $child_data;?> 

Выход: – https://eval.in/656522

Примечание: – Код будет работать только для данной структуры массива (элемент может быть больше, без проблем), но если структура массива изменена, код не будет работать.

Вы пытаетесь использовать 3 foreach ()

 foreach($data as $level1) { foreach(level1 as $level2) { foreach(level2 as $level3) {