我有一些像这样的数组:
array(6) {
[0]=> object(stdClass)#22 (1)
{
["menu_image"]=> string(17) "1b5df-menu_16.jpg"
}
[1]=> object(stdClass)#23 (1)
{
["menu_image"]=> string(18) "2fe75-menu_17.jpeg"
}
[2]=> object(stdClass)#24 (1)
{
["menu_image"]=> string(16) "5ceda-menu_8.jpg"
}
[3]=> object(stdClass)#25 (1)
{
["menu_image"]=> string(17) "16079-menu_15.jpg"
}
[4]=> object(stdClass)#26 (1)
{
["menu_image"]=> string(17) "70c66-menu_13.jpg"
}
[5]=> object(stdClass)#27 (1)
{
["menu_image"]=> NULL
}
}
我想在我的html页面中使用div
标记显示该数组,但我仍然混淆了如何使用我想要的特定div
标记循环它。
我想在我的html中显示该数组,这是我想要的格式:
<div class="row">
<img src="menu_image">
<img src="menu_image">
<img src="menu_image">
</div>
<div class="row">
<img src="menu_image">
<img src="menu_image">
<img src="menu_image">
</div>
如何使foreach
循环以便我可以获得div
格式?感谢
答案 0 :(得分:1)
试试这个:
foreach (array_chunk($array, 3) as $objs) {
echo "<div class=\"row\">\n";
foreach ($objs as $obj) {
echo " <img src=\"$obj->menu_image\">\n";
}
echo "</div>\n";
}
打印:
<div class="row">
<img src="1b5df-menu_16.jpg">
<img src="2fe75-menu_17.jpeg">
<img src="5ceda-menu_8.jpg">
</div>
<div class="row">
<img src="16079-menu_15.jpg">
<img src="70c66-menu_13.jpg">
<img src="">
</div>
此答案使用array_chunk
将数组拆分为3个块,例如
由此:
array(6) {
[0] => object(stdClass)#22 (1) { ["menu_image"] => string(17) "1b5df-menu_16.jpg" }
[1] => object(stdClass)#23 (1) { ["menu_image"] => string(18) "2fe75-menu_17.jpeg" }
[2] => object(stdClass)#24 (1) { ["menu_image"] => string(16) "5ceda-menu_8.jpg" }
[3] => object(stdClass)#25 (1) { ["menu_image"] => string(17) "16079-menu_15.jpg" }
[4] => object(stdClass)#26 (1) { ["menu_image"] => string(17) "70c66-menu_13.jpg" }
[5] => object(stdClass)#27 (1) { ["menu_image"] => NULL }
}
对此:
array(6) {
[0] => [
[0] => object(stdClass)#22 (1) { ["menu_image"] => string(17) "1b5df-menu_16.jpg" }
[1] => object(stdClass)#23 (1) { ["menu_image"] => string(18) "2fe75-menu_17.jpeg" }
[2] => object(stdClass)#24 (1) { ["menu_image"] => string(16) "5ceda-menu_8.jpg" }
]
[1] => [
[0] => object(stdClass)#25 (1) { ["menu_image"] => string(17) "16079-menu_15.jpg" }
[1] => object(stdClass)#26 (1) { ["menu_image"] => string(17) "70c66-menu_13.jpg" }
[2] => object(stdClass)#27 (1) { ["menu_image"] => NULL }
]
}
因为每个图像src都包含在一个对象中,所以你必须使用对象表示法而不是数组表示法。
答案 1 :(得分:0)
使用array_chunk函数。
<?php foreach (array_chunk($array, 3) as $chunk): ?>
<div class="row">
<?php foreach ($chunk as $image): ?>
<img src="<?php echo $image->menu_image ?>">
<?php endforeach ?>
</div>
<?php endforeach ?>
答案 2 :(得分:0)
您可以使用以下代码,只需使用foreach循环遍历menu_image。
<?php
$arrayName = array();
$arrayName[] = array(
"menu_image" => "2fe75-menu_17.jpeg"
);
$arrayName[] = array(
"menu_image" => "2fe75-menu_18.jpeg"
);
$arrayName[] = array(
"menu_image" => "2fe75-menu_19.jpeg"
);
echo '<div class="row">';
foreach($arrayName as $key => $value){
echo '<img src='."$value[menu_image]".'>';
}
echo '</div>';
?>
答案 3 :(得分:0)
执行这样的通用方法。如果你有超过6个图像,它将工作。
$i=0;
$last_img = end($new);
foreach($new as $key=>$row)
{
if($i==0)
{
echo '<div class="row">';
}
echo '<img src="'.$row->menu_image .'">';
if($i==2 || $key==$last_img)
{
echo '</div>';
$i=-1; //reset the i again -1 because ++ below so -1
}
$i++;
}
?>