Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$root['sub1'] = array('tx1' => 'http://1');
$root['sub2'] = array('tx2' => 'http://2');
$root['sub1']['sub12'] = array('tx12' => 'http://12');
$root['sub2']['sub22'] = array('tx22' => 'http://22');
$root['sub1']['sub12']['sub123'] = array('tx123' => 'http://123');
$root['sub2']['sub22']['sub223'] = array('tx223' => 'http://223');
?>
<ul id="adv_admin_bar_nav">
<? foreach ($root as $rts) { ?>
<li><a href="<? echo $rts[$key]; ?>"><? echo $rts[$value]; ?></a>
<ul>
<? foreach ($rts as $sub) { ?>
<li>
<a href="<? echo $sub; ?>"><? echo $sub; ?></a>
<ul>
<? foreach ($rts as $sub) { ?>
<li>
<a href="<? echo $sub; ?>"><? echo $sub; ?></a>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$root['sub1'] = array('tx1' => 'http://1');
$root['sub2'] = array('tx2' => 'http://2');
$root['sub1']['sub12'] = array('tx12' => 'http://12');
$root['sub2']['sub22'] = array('tx22' => 'http://22');
$root['sub1']['sub12']['sub123'] = array('tx123' => 'http://123');
$root['sub2']['sub22']['sub223'] = array('tx223' => 'http://223');
?>
<ul id="adv_admin_bar_nav">
<? foreach ($root as $rts) { ?>
<li><a href="<? echo $rts[$key]; ?>"><? echo $rts[$value]; ?></a>
<ul>
<? foreach ($rts as $sub) { ?>
<li>
<a href="<? echo $sub; ?>"><? echo $sub; ?></a>
<ul>
<? foreach ($rts as $sub) { ?>
<li>
<a href="<? echo $sub; ?>"><? echo $sub; ?></a>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</li>
<? } ?>
</ul>
</body>
</html>
но совершенно не понимаю, как выводить

если можно, для каждого уровня расписать foreach ($root as $rts) и <a href="<? echo $rts[$key]; ?>"><? echo $rts[$value]; ?></a> то благодарность моя просто границ не будет знать.

Готов Материально проспонсировать поддержавщего. В разумных пределах


Спустя 1 день, 18 часов, 53 минуты, 46 секунд (22.11.2007 - 20:40) bars80080 написал(а):
моё личное мнение, лучше не заморачиваться с ассоциативными массивами, а использовать порядковые
модель: // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...);
заголовок, ссылка и дальше идут массивы подпунктов
перебирая эти массивы, мы начинаем счёт с 2, т.к. элементы с номером 0 и 1 уже использованы
мало того такую систему впоследствии можно расширить, скажем указывать не только заголовок и ссылку, но ещё и спец.данные, которые впоследствии можно применять для дизайна (выделять некоторые ссылки особым способом) или в структуре (открытие ссылки в текущем окне или новом)
Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title></head><body>
<?php // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...); // model
$root = array('','');
$root[2 + 0] = array('tx1', 'http://1');
$root[2 + 1] = array('tx2', 'http://2');
$root[2][2 + 0] = array('tx11', 'http://11');
$root[2][2 + 1] = array('tx12', 'http://12');
$root[3][2 + 0] = array('tx21', 'http://21');
$root[3][2 + 1] = array('tx22', 'http://22');
$root[2][2][2] = array('tx111', 'http://111');
$root[2][2][3] = array('tx112', 'http://112'); ?>
<ul id="adv_admin_bar_nav">
<?
for($i1 = 2; isset($root[$i1]); $i1++) {
echo '<li><a href="'.$root[$i1][1].'">'.$root[$i1][0].'</a><ul>';
for($i2 = 2; isset($root[$i1][$i2]); $i2++) {
echo '<li><a href="'.$root[$i1][$i2][1].'">'.$root[$i1][$i2][0].'</a><ul>';
for($i3 = 2; isset($root[$i1][$i2][$i3]); $i3++) {
echo '<li><a href="'.$root[$i1][$i2][$i3][1].'">'.$root[$i1][$i2][$i3][0].'</a></li>'; }
echo '</ul></li>'; }
echo '</ul></li>'; }
?>
</ul>
</body></html>
<html xmlns="http://www.w3.org/1999/xhtml ">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title></head><body>
<?php // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...); // model
$root = array('','');
$root[2 + 0] = array('tx1', 'http://1');
$root[2 + 1] = array('tx2', 'http://2');
$root[2][2 + 0] = array('tx11', 'http://11');
$root[2][2 + 1] = array('tx12', 'http://12');
$root[3][2 + 0] = array('tx21', 'http://21');
$root[3][2 + 1] = array('tx22', 'http://22');
$root[2][2][2] = array('tx111', 'http://111');
$root[2][2][3] = array('tx112', 'http://112'); ?>
<ul id="adv_admin_bar_nav">
<?
for($i1 = 2; isset($root[$i1]); $i1++) {
echo '<li><a href="'.$root[$i1][1].'">'.$root[$i1][0].'</a><ul>';
for($i2 = 2; isset($root[$i1][$i2]); $i2++) {
echo '<li><a href="'.$root[$i1][$i2][1].'">'.$root[$i1][$i2][0].'</a><ul>';
for($i3 = 2; isset($root[$i1][$i2][$i3]); $i3++) {
echo '<li><a href="'.$root[$i1][$i2][$i3][1].'">'.$root[$i1][$i2][$i3][0].'</a></li>'; }
echo '</ul></li>'; }
echo '</ul></li>'; }
?>
</ul>
</body></html>
модель: // $root = array('header', 'link', subpunkt1, subpunkt2, subpunkt3...);
заголовок, ссылка и дальше идут массивы подпунктов
перебирая эти массивы, мы начинаем счёт с 2, т.к. элементы с номером 0 и 1 уже использованы
мало того такую систему впоследствии можно расширить, скажем указывать не только заголовок и ссылку, но ещё и спец.данные, которые впоследствии можно применять для дизайна (выделять некоторые ссылки особым способом) или в структуре (открытие ссылки в текущем окне или новом)