цикл foreach с вложенным массивом?

Мой массив $ 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) {
?>
&raquo; <?php echo $option; ?><br />
<?php
}

}

Моя очевидная проблема с кодом — это цикл foreach внутри цикла foreach, плюс я не понял, как определить [name] => city из [name] => провинция, у обоих есть [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>';

1

Решение

Вы могли бы использовать 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>";
}
}

Увидеть Руководство по PHP: взорваться.

Надеюсь это поможет!

2

Другие решения

Я вообще не понимаю, но я хочу, чтобы вы просто вывели три города, вы можете сделать это

foreach ($array as $arr)
{
if ($arry['name'] == 'city')
{
foreach ($arr['options'] as $option)
{
echo $option . '<br />';
}
}
}

Достаточно?

1

По вопросам рекламы [email protected]