我想在php中创建一个三级数组,示例数据用于开发目的,我有:
$data = array(
array(1 => array("A ROW GREENS", array(
"A1" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A2" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A3" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg")
))),
array(2 => array("A ROW BLUE",array(
"A1" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A2" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A3" => array("http://flexslider.woothemes.com/images/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>
(使用ID作为标识符)并打印其他<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://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
<li id="child1-A2">http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
<li id="child1-A3">http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
</ul>
<ul id="child2">
<li id="child2-A1">http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
<li id="child2-A2">http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
<li id="child2-A3">http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg</li>
</ul>
答案 0 :(得分:2)
您可以达到以下预期结果: -
<?php
$data = array(
array(1 => array("A ROW GREENS", array(
"A1" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A2" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A3" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg")
))),
array(2 => array("A ROW BLUE",array(
"A1" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A2" => array("http://flexslider.woothemes.com/images/kitchen_adventurer_cheesecake_brownie.jpg"),
"A3" => array("http://flexslider.woothemes.com/images/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
注意: - 代码只适用于给定的数组结构(元素可以更多,没有问题),但是如果更改了数组结构,那么代码将无法工作。
答案 1 :(得分:0)
您是否尝试使用3 foreach()
foreach($data as $level1)
{
foreach(level1 as $level2)
{
foreach(level2 as $level3)
{