我的数组$数组包含以下内容:
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] =>城市。
到目前为止我尝试过的(看起来不太好):
foreach ($array as $arr) {
foreach ($arr['options'] as $option) {
?>
» <?php echo $option; ?><br />
<?php
}
}
我对代码的明显问题是foreach循环中的foreach循环加上我还没弄清楚如何识别[name] =&gt;来自[name] =&gt;的城市省,他们都有[选项]。
我对循环数组很新。
更新(与我的回答)
结合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>';
答案 0 :(得分:2)
您可以使用implode($glue,$array)
,如下所示;
foreach($array as $arr) {
if($arr['name'] == "city") {
echo implode('<br>',$arr['options']);
}
}
或者如果您想要打印城市列表,请将implode()
与列表标签一起打包,就像这样;
foreach($array as $arr) {
if($arr['name'] == "city") {
echo "<ul><li>" . implode("</li><li>", $arr['options']) . "</li></ul>";
}
}
希望这有帮助!
答案 1 :(得分:1)
我根本不明白,但我想要的只是输出三个城市,哟可以做到这一点
foreach ($array as $arr)
{
if ($arry['name'] == 'city')
{
foreach ($arr['options'] as $option)
{
echo $option . '<br />';
}
}
}
那够了吗?