Как запустить цикл foreach loop в массиве?

203
25 декабря 2021, 17:00

У меня в одном массиве есть ещё 3 массива, эти 3 внутренних массив должны выводиться циклом, но у меня не получается запустить цикл внутри основного массива. Подскажите, пожалуйста, как это правильно сделать?

$adresses = array( 
    'Kazan' => array( 
        'name' => 'Казань', 
        'header_phone' => '123', 
        'header_adress' => '123', 
        'header_adress2' => '123', 
    ), 
    'belgorod' => array( 
        'name' => 'Белгород', 
        'header_phone' => '123', 
        'header_adress' => '123', 
        'header_adress2' => '123', 
    ), 
    'volgograd' => array( 
        'name' => 'Название города_3', 
        'header_phone' => '123', 
        'header_adress' => '123', 
        'header_adress2' => '123', 
    ), 
);

Я пытаюсь делать так, но всё крашится, так цикл не запускается:

$adresses = array( 
while ( have_rows( 'contacts', 'option' ) ) : the_row(); 
'Kazan' => array( 
'name' => 'Казань', 
'header_phone' => the_sub_field( 'number' );, 
'header_adress' => the_sub_field( 'adr' );, 
'header_adress2' => the_sub_field( 'adr2' );, 
), 
endwhile; 
);

Answer 1
$adresses = [
    'Kazan' => [
        'name' => 'Казань',
        'header_phone' => '123',
        'header_adress' => '123',
        'header_adress2' => '123',
    ],
    'belgorod' => [
        'name' => 'Белгород',
        'header_phone' => '123',
        'header_adress' => '123',
        'header_adress2' => '123',
    ],
    'volgograd' => [
        'name' => 'Название города_3',
        'header_phone' => '123',
        'header_adress' => '123',
        'header_adress2' => '123',
    ],
];
foreach ($adresses as $key => $value) {
    echo 'name          : ' . $value['name'] . PHP_EOL;
    echo 'header_phone  : ' . $value['header_phone'] . PHP_EOL;
    echo 'header_adress : ' . $value['header_adress'] . PHP_EOL;
    echo 'header_adress2: ' . $value['header_adress2'] . PHP_EOL;
    echo "---------------" . PHP_EOL;
}
/* output is
name          : Казань
header_phone  : 123
header_adress : 123
header_adress2: 123
---------------
name          : Белгород
header_phone  : 123
header_adress : 123
header_adress2: 123
---------------
name          : Название города_3
header_phone  : 123
header_adress : 123
header_adress2: 123
---------------
*/
Answer 2

Попробуйте так:

foreach($adresses as $adress){
    foreach($adress as $value){
        echo $value . PHP_EOL;
    }
}

Вывод:

Казань
123
123
123
Белгород
123
123
123
Название города_3
123
123
123
READ ALSO
Как исправить поведение sendAjaxPostRequest()?

Как исправить поведение sendAjaxPostRequest()?

Всем приветПишу функциональный тест под YII2, для "нажатия" на кнопку использую sendAjaxPostRequest():

155
не работает php

не работает php

Учу HTML дошёл до form начал углубляться в тему и дошёл до обработчиков форм PHPНачал практиковаться в Notepad++ написал обычную форму для сообщений...

278
как работает магия Symfony

как работает магия Symfony

В официальной документации Symfony, есть такие примеры как

102
Какие есть программы на Ubuntu для создания gif через терминал?

Какие есть программы на Ubuntu для создания gif через терминал?

Какие вообще есть варианты из программ создающих анимированный гиф, с возможностью их запуска с параметрами из терминала, например через...

189