извлечение элементов из массива и зацикливание - PullRequest
0 голосов
/ 13 февраля 2012

Я пытаюсь получить элементы из массива. Вот как выглядит мой список.

Вот как выглядят мои вещи

fruits[apple] = 'apple';
fruits[grapes] = 'grapes';
fruits[banana] = 'banana';

animals[dog] = 'dog';
animals[cat] = 'cat';
....

и мой цикл должен выглядеть примерно так.

<ul>
   <li> <a href="fruits/<?php echo $fruits ?>"><?php echo $fruits ?></a> </li>
</ul>

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012
if(is_array($fruits) && count($fruits) > 0){
    echo "<ul>\n";
    foreach($fruits as $fruit){
        echo "<li><a href=\"fruits/".$fruit."\">".$fruit."</a></li>\n";
    }
    echo "</ul>\n";
} else {
    echo "No Fruits :(";
}

Simples!

Вы можете сделать то же самое с животными ...

2 голосов
/ 13 февраля 2012

MrJ уже дал вам ответ, но я публикую его, чтобы вы могли видеть альтернативу и IMO лучше, более чистый синтаксис:

<?php if(count($fruits)): // dont output unless we actually have fruits! ?>
  <ul>
  <?php foreach($fruits as $fruit): ?>
     <li><a href="fruits/<?php echo $fruit ?>"><?php echo $fruit ?></a></li>
  <?php endforeach; ?>
  </ul>
<?php endif; ?> 

Еще лучше использовать printf для создания ссылки, поэтому нам не нужно постоянно включать и выключать php, при этом избегая сумасшедшей конкатенации строк для получения html:

<?php if(count($fruits)): // dont output unless we actually have fruits! ?>
  <ul>
  <?php foreach($fruits as $fruit): ?>
     <li><?php printf('a href="%s">%s</a>', $fruit, $fruit) ?></li>
  <?php endforeach; ?>
  </ul>
<?php endif; ?> 
...