我有以下PHP数组结构:
$set = array();
$set[] = array('firstname'=>'firstname 1',
'lastname'=>'lastname 1',
"bio"=>array('paragraph 1 of the bio, 'paragraph 2 of the bio','paragraph 3 of the bio'),
);
然后我使用以下内容访问数组:
<?php $counter = 0;
while ($counter < 1) : //1 for now
$item = $set[$counter]?>
<h1><?php echo $item['firstname'] ?></h1>
<h1><?php echo $item['lastname'] ?></h1>
<?php endwhile; ?>
我不确定如何循环遍历阵列的“bio”部分并回显每个段落。
所以作为最终输出,我应该有两个h1(名字和姓氏)和三个段落(bio)。
我该怎么做呢?
答案 0 :(得分:3)
使用foreach
循环
foreach($item['bio'] as $listitem) {
echo $listitem;
}
答案 1 :(得分:1)
同时添加到while循环中:
<?php foreach ($item['bio'] as $paragraph): ?>
<p><?php echo $paragraph; ?></p>
<?php endforeach; ?>
请注意,使用的编码风格并非最佳。
答案 2 :(得分:1)
您不需要使用手动计数器,您可以使用foreach。这通常是最简单的方法,可以防止出现错误。
然后你需要第二个内循环来循环生物。
<?php foreach ($set as $item): ?>
<h1><?php echo $item['firstname'] ?></h1>
<h1><?php echo $item['lastname'] ?></h1>
<?php foreach ($item['bio'] as $bio): ?>
<p><?php echo $bio; ?></p>
<?php endforeach; ?>
<?php endforeach; ?>
相关说明;你可能想要考虑逃避你的输出。
答案 3 :(得分:0)
尝试:
foreach($set as $listitem) {
if(is_array($listitem)) {
foreach($listitem as $v) //as $set['bio'] is an array
echo '<h1>' .$v . '</h1>';
} else
echo '<p>'.$listitem.'</p>';
}