[英]foreach loop with nested array?
我的數組$ array包含以下內容:
Array ( [0] => Array (
[label] => Location and Contact
[description] =>
) [1] => Array (
[label] => Province
[name] => province
[options] => Array ( [0] => Province 1
[1] => Province 2
[2] => Province 3 )
) [2] => Array (
[label] => City
[name] => city
[options] => Array ( [0] => City 1
[1] => City 2
[2] => City 3 )
)
我想要實現的是將這三個城市循環到底部,可能是使用[name] => city。
到目前為止我嘗試過的(看起來並不是很好):
foreach ($array as $arr) {
foreach ($arr['options'] as $option) {
?>
» <?php echo $option; ?><br />
<?php
}
}
我對代碼的明顯問題是foreach循環中的foreach循環加上我還沒弄清楚如何從[name] =>省識別[name] => city,兩者都有[options]。
我對循環數組很新。
更新(與我的答案)
結合worldofjr的答案和我的修改,所以我可以將每個循環包含在一個容器中,如<li>, <option>, <div>
等,我只創建了兩個foreach:
foreach($array as $arr) {
if($arr['name'] == "city") {
$cities = $arr['options'];
}
}
echo '<select>';
foreach($cities as $city){
echo '<option value="'.$city.'" class="class1 class2" data-att="att">'.$city.'</option>';
}
echo '</select>';
您可以使用implode($glue,$array)
,如下所示;
foreach($array as $arr) {
if($arr['name'] == "city") {
echo implode('<br>',$arr['options']);
}
}
或者如果要打印城市列表,請使用list標簽包裝implode()
,如下所示;
foreach($array as $arr) {
if($arr['name'] == "city") {
echo "<ul><li>" . implode("</li><li>", $arr['options']) . "</li></ul>";
}
}
請參閱PHP手冊:implode 。
希望這可以幫助!
我根本不明白,但我想要的只是輸出三個城市,你可以做到這一點
foreach ($array as $arr)
{
if ($arry['name'] == 'city')
{
foreach ($arr['options'] as $option)
{
echo $option . '<br />';
}
}
}
那夠了嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.