Нужна помощь по циклам foreach - запутался:(, меню с повторяющимся текстом обьеденять

OLDBOY88

Новичок
Добрай день нужна помощь знатоков, суть вопроса: есть меню - его я вывожу без проблем кодом:

PHP:
<?
foreach ($menuid1 as $menuname) {
$db->setQuery("SELECT `title`,`path` FROM `#__menu` where `id` ='$menuname'");
$setmenu= $db->loadObjectList();
foreach($setmenu as $menu) { ?>
<div>
<h2><? echo $menu->title; ?></h2>
<?
foreach ($menuid1 as $menuname) {
$db->setQuery("SELECT `title`,`path` FROM `#__menu` where `parent_id` ='$menuname' ORDER BY `#__menu`.`lft` ");
$setmenu= $db->loadObjectList();?>
<ul class="list3">
<? foreach($setmenu as $menu) { ?>
<li><a href="<? echo $menu->path; ?>.html"><? echo $menu->title; ?></a></li>
<? } ?>
</ul>
<? } ?>
</div>
<? } } ?>

Но задача состоит в том чтобы найти повторяющийся текст и обьеденить в одно меню,тоесть:
- <a href="...">пукт меню 1</a>
- супер пукт меню <a href="...">2</a>, <a href="...">3</a>
- <a href="...">пукт меню 4</a>
- <a href="...">пукт меню 5</a>

тоесть находим повторяющийся пукнт меню со схожим названием и концовку его только остовляем:
- <a href="...">супер пукт меню 1</a>
- <a href="...">супер пукт меню 2</a>
в
- супер пукт меню <a href="...">2</a>, <a href="...">3</a>
в чем не получается у меня - текст с такимже названием я нахожу,в начало его добовляю текст меню который без ссылки но не получается обьеденять,нужен еще какаято провека чтоли... нужна помощь:( щас у меня выводит так:
- <a href="...">пукт меню 1</a>
- супер пукт меню <a href="...">2</a>
- супер пукт меню <a href="...">3</a> - как обьеденить их? в супер пукт меню <a href="...">2</a>, <a href="...">3</a> ((
- <a href="...">пукт меню 4</a>
- <a href="...">пукт меню 5</a>
PHP:
<?
$value = array('Аренда недвижимости в ','Покупка недвижимости в ');
foreach ($menuid1 as $menuname) {
$db->setQuery("SELECT `title`,`path` FROM `#__menu` where `id` ='$menuname'");
$setmenu= $db->loadObjectList();
foreach($setmenu as $menu) { ?>
<div>
<h2><? echo $menu->title; ?></h2>
<? $i=0;
foreach ($menuid1 as $menuname) {
$db->setQuery("SELECT `title`,`path` FROM `#__menu` where `parent_id` ='$menuname' ORDER BY `#__menu`.`lft` ");
$setmenu= $db->loadObjectList(); ?>
<ul class="list3">
<? foreach($setmenu as $menu) { 
$mystring = $menu->title;
$findme = $value[$i];
$pos = strpos($mystring, $findme);
if ($pos === false) { ?>
<li><a href="<? echo $menu->path; ?>.html"><? echo $menu->title; ?></a></li>
<? $i++; } else { ?>
<li>
<? echo $value[$i];?>:<a href="<? echo $menu->path; ?>.html"><? echo $ful_text = str_replace($findme," ",$mystring); ?></a></li>
<? } ?>
</li>
<? } ?>
</ul>
<? } ?>
</div>
<? } 
} ?>
 

riff

Новичок
Раздели код и вывод информации: (псевдокод)
PHP:
$menus = array();
$id = -1;
foreach (...) {
    if (твоё_условие && isset($menus[$id])) {
        $menus[$id]['submenu'][] = $value;
    }
    else {
        $id++;
        $menus[$id]['value'] = $value;
    }
}

...
<ul>
foreach ($menus as $menu) {
    <li>
        echo $menu['value'];
        if (isset($menu['submenu'])) {
            foreach ($menu['submenu'] as $item) {
                echo $item;
            )
        }
    <li>
}
</ul>
 
Последнее редактирование:
Сверху