从数组中获取项目并将其放在循环中

时间:2012-02-12 20:30:26

标签: php arrays loops while-loop

我正在尝试从数组中获取项目。所以这就是我的列表的样子。

这是我的项目的样子

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 个答案:

答案 0 :(得分:4)

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!

你也可以对动物做同样的事情......

答案 1 :(得分:2)

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; ?>