За последние 24 часа нас посетили 36980 программистов и 7800 роботов. Сейчас ищут 1870 программистов ...

Нужна помощь с обходом массива. Рекурсия.

Тема в разделе "PHP для новичков", создана пользователем faust356, 20 июл 2023.

Метки:
?

обход массива через рекурсию

  1. 1

    0 голосов
    0,0%
  2. рекурсия foreach

    0 голосов
    0,0%
Можно выбрать сразу несколько вариантов.
  1. faust356

    faust356 Гость

    С нами с:
    20 июл 2023
    Сообщения:
    1
    Симпатии:
    0
    Помогите написать функцию foreach чтоб обходила массив и каждый раз возращала массив . Хочу понять как это работает и сам потом в качестве обучения поиграюсь .
    PHP:
    1. <?php
    2. function getKeyVals($arr, $key) {
    3.     foreach ($arr as $k => $v) {
    4.         if ($k === $key) {
    5.           yield $v;
    6.         }
    7.         else if (is_array($v)) {
    8.             foreach (getKeyVals($v, $key) as $v2) {
    9.                 yield $v2;
    10.             }
    11.         }
    12.     }
    13. }
    14.  
    15. $data = [
    16.         [
    17.             'name' => 'A',
    18.             'value' => 1
    19.         ],
    20.         [
    21.             'name' => 'B',
    22.             'value' => 2
    23.         ],
    24.         [
    25.             'name' => 'C',
    26.             'value' => [
    27.                 'name' => 'X1',
    28.                 'value' => 3
    29.                 ],
    30.                 [
    31.                 'name' => 'X2',
    32.                 'value' => 4
    33.                 ],
    34.                 [
    35.                 'name' => 'x3',
    36.                 'value' => 5
    37.                 ],
    38.         ]
    39.     ];
    Думаю можно сделать через for , но это он будет бесконечно же так вызывать как я понимаю
     
    #1 faust356, 20 июл 2023
    Последнее редактирование модератором: 22 июл 2023