2012-02-12 79 views
0

我试图从数组中获取项目。所以这就是我的列表。从数组中获取项目并将其放在循环中

这里是我的项目看起来像

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> 

回答

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!

你可以做同样的动物太...

+0

添加简单的检查,看看如果有东西在那里,否则会弹出一个错误 – MrJ 2012-02-12 20:39:21

+0

这适用于我!谢谢... prodigitalson也是一个好方法。 – Pennf0lio 2012-02-12 21:17:06

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

+1可读性 – Josh 2012-02-12 20:40:02

+0

不错的选择!谢谢.. – Pennf0lio 2012-02-12 22:31:50

相关问题