2014-12-30 1 views
1

Я искал и пробовал некоторые из решений здесь, но не могу найти ответ, чтобы решить мою проблему. Я думаю, что я должен использовать usort сделать ниже код результата в ASC сортируется массив, но я не знаю, как поставить в синтаксисе .... помощь apprieciated ...Сортировка функции foreach по возрастанию

<?php 
//show menu items 
$nav = $eshop->getNav(); 
foreach ($nav as $i => $btn) { ?> 

     <li class="<?php if ($i == 0) echo 'first'; ?>"><a href="<?= $url . $btn['link'] ?>" id="cat-<?= $btn['id'] ?>"><?= $btn['caption'] ?></a> 
      <ul> 
       <li><span class="title">Producten</span> 
        <ul> 
    <?php 
    //show products of this item 
    foreach ($btn['products'] as $j => $prodBtn) { ?> 

         <li><a href="<?= $url . $prodBtn['link'] ?>"><?= $prodBtn['caption'] ?></a></li> 
    <?php 
     //10 products max 
     if ($j >= 10) break; 
    } 
    ?> 
        </ul> 
       </li> 
       <li><span class="title">Merken</span> 
        <ul> 
    <?php 
    //show brands of this item 
    foreach ($btn['brands'] as $j => $brandBtn) { ?> 

         <li><a href="<?= $url . $brandBtn['link'] ?>"><?= $brandBtn['caption'] ?></a></li> 
    <?php 
     //10 brands max 
     if ($j >= 10) break; 
    } 
    ?> 
        </ul> 
       </li> 

жаль я не получаю отступ часть ,! , но с приведенным выше кодом никакие продукты не указаны. Я получаю только подменю (продукты/бренды/приложения)

Так что, возможно, дополнительная информация: в меню показаны категории, затем на категорию, в которой отображаются товарные бренды и т. Д. На выбор. При использовании сортировки не функционируют никаких продуктов или что-либо отображается, но название подменит ... благодаря Стефану

отредактированного кода, который используется

+0

Простой код отступа. Путем организации кода один уже решает половину проблем ... –

ответ

1

Сортировки вашего массива перед вызовом Еогеаспа(). Поскольку это многомерный массив, вам, вероятно, нужен особый вид (usort определяется пользователем, есть много других).

sort($nav); // or usort, ksort, $foosort .... 

foreach ($nav as $i => $btn) { 
    //foo 
+0

Очевидно, что вызов usort() будет: usort ($ nav, "my_sorting_function_name"); –

+0

Я знаю, что получил код ниже, но никаких продуктов не отображается. если я поставил его перед навигационным кодом foreach, он полностью меняет мое меню ... любые идеи? ? $ prodBtn) {?> \t \t \t \t \t \t \t \t \t

  • Stefanl

    +0

    Я бы не Использовать strcmp; по крайней мере, я думаю, что нет. Покажите свои данные; возможно, PasteBin? Похоже, вы хотите сравнить член «Caption» вашего массива кнопок. Как они выглядят? –