I am stuck with a bunch of foreach loops and would like to know if there is a way to hone them down to a simple 'for' loop or a recursive function? I'm trying to generate HTML with the elements nested inside each other. I guess what I'm trying to get at is an arrays of arrays. But I don't know how to move forward with what I've created so far. Can someone please help me to make this monster into something more tamable? Thank you!
İşte benim kod:
$containers = DISPLAY::displayParentElements($data);
$subcontainers = DISPLAY::displayChildElements($data2);
foreach($containers as $parent) {
$parentDiv = $parent['parentDiv'];
echo '<div id="'.$parentDiv.'">';
foreach($subcontainers as $child) {
echo '<div id="'.$child['childDiv'].'">';
foreach($subcontainers as $grandChild) {
echo '<div id="'.$grandChild['grandChildDiv'].'">';
foreach($subcontainers as $greatGrandChild) {
echo '<div id="'.$greatGrandChild['greatGrandChildDiv'].'">';
echo '</div>';
}
echo '</div>';
}
echo '</div>';
}
echo '</div>';
}
Daha sonra sonuçlar aşağıdaki gibi görünecektir:
<div id="siteContainer">
<div id="header">
<div id="logoContainer">/div>
<div id="logo"></div>
<div id="links"></div>
<div id="contactInfo">
<div id="logoText">
<div id="shortDiv">
<div class="headerText"></div>
</div>
</div>
</div>
</div>
<div id="body">
<div id="longDiv"></div>
<div id="greetings"></div>
</div>
<div>
$containers
dizisi şu bilgi vardır:
Array
(
[attribute_value] => siteContainer
)
Array
(
[attribute_value] => header
)
Array
(
[attribute_value] => logoContainer
)
Array
(
[attribute_value] => logo
)
Array
(
[attribute_value] => logoText
)
Array
(
[attribute_value] => links
)
Array
(
[attribute_value] => contactInfo
)
Array
(
[attribute_value] => body
)
Array
(
[attribute_value] => longDiv
)
Array
(
[attribute_value] => shortDiv
)
Array
(
[attribute_value] => headerText
)
Array
(
[attribute_value] => greetings
)
$subcontainers
dizisi hemen hemen aynı bilgi, ancak ekstra bir anahtar ile vardır:
Array
(
[parent_container_name] => siteContainer
[attribute_value] => header
)
Array
(
[parent_container_name] => header
[attribute_value] => logoContainer
)
Array
(
[parent_container_name] => header
[attribute_value] => logo
)
Array
(
[parent_container_name] => contactInfo
[attribute_value] => logoText
)
Array
(
[parent_container_name] => header
[attribute_value] => links
)
Array
(
[parent_container_name] => header
[attribute_value] => contactInfo
)
Array
(
[parent_container_name] => siteContainer
[attribute_value] => body
)
Array
(
[parent_container_name] => body
[attribute_value] => longDiv
)
Array
(
[parent_container_name] => logoText
[attribute_value] => shortDiv
)
Array
(
[parent_container_name] => shortDiv
[attribute_value] => headerText
)
Array
(
[parent_container_name] => body
[attribute_value] => greetings
)
Ben iki diziler birine ya da sadece $containers
dizi kullanarak daralmış olabilir eminim.