我正在尝试使用php迭代数组。我希望将项目存储在<li>
标记中。我无法将名称打印出来。我可以计算打印的数组项,但不是名称。
<ul>
<?php
$names = array('Mike', 'Chris', 'Jane', 'Bob');
for($i=0; $i < count($names); $i++) {
echo "<li>" . $i . "</li>";
}
?>
</ul>
答案 0 :(得分:2)
<ul>
<?php
$names = array('Mike', 'Chris', 'Jane', 'Bob');
foreach ($names as $name) {
echo "<li>" . $name . "</li>";
}
?>
</ul>
这比通过索引对数组进行内爆和循环更自然。
您的代码无效是因为您回显了数组中名称的索引而不是实际名称
答案 1 :(得分:1)
你需要回显数组而不是$ i的计数。所以你的回声应该是这样的:
echo "<li>" . $names[$i] . "</li>";
答案 2 :(得分:1)
<ul>
<?php
$names = array('Mike', 'Chris', 'Jane', 'Bob');
foreach($names as $name) {
echo "<li>" . $name . "</li>";
}
?>
</ul>
答案 3 :(得分:0)
这应该适合你:
只需implode()
您的数组,例如
echo "<li>" . implode("</li><li>", $names) . "</li>";
您当前的代码无效,因为您不会将变量$i
用作索引。所以你必须使用:
$names[$i]
答案 4 :(得分:0)
您需要将索引拉出数组,否则您将获得0,1,2,3 ......
<ul>
<?php
$names = array('Mike', 'Chris', 'Jane', 'Bob');
for($i=0; $i < count($names); $i++) {
echo "<li>" . $names[$i] . "</li>";
}
?>
</ul>
答案 5 :(得分:-1)
另一种编码方式是:
<ul>
<?php $names = array('Mike', 'Chris', 'Jane', 'Bob'); ?>
<?php foreach ($names as $name) : ?>
<li><?php echo $name ?></li>
<?php endforeach ?>
</ul>