За последние 24 часа нас посетили 9968 программистов и 724 робота. Сейчас ищут 250 программистов ...

Перебор массива

Тема в разделе "Сделайте за меня", создана пользователем Poganikus, 13 сен 2021 в 21:11.

  1. Poganikus

    Poganikus Новичок

    С нами с:
    2 апр 2021
    Сообщения:
    3
    Симпатии:
    0
    Добрый день! Помогите чайнику.
    Есть два массива. Задача: на основание "id и section_id" сформировать три массива.

    Код (Text):
    1.  
    2. // Массив с id
    3. Array
    4. (
    5.     [0] => Array
    6.         (
    7.             [id] => 10
    8.         )
    9.  
    10.     [1] => Array
    11.         (
    12.             [id] => 7
    13.         )
    14.  
    15.     [2] => Array
    16.         (
    17.             [id] => 8
    18.         )
    19.  
    20. )
    21.  
    22. // Массив элементов
    23. Array
    24. (
    25.     [0] => Array
    26.         (
    27.             [name] => Один
    28.             [section_id] => 10
    29.         )
    30.  
    31.     [1] => Array
    32.         (
    33.             [name] => Два
    34.             [section_id] => 10
    35.         )
    36.  
    37.     [2] => Array
    38.         (
    39.             [name] => Три
    40.             [section_id] => 10
    41.         )
    42.  
    43.     [3] => Array
    44.         (
    45.             [name] => 1
    46.             [section_id] => 7
    47.         )
    48.  
    49.     [4] => Array
    50.         (
    51.             [name] => 2
    52.             [section_id] => 7
    53.         )
    54.  
    55.     [5] => Array
    56.         (
    57.             [name] => Uno
    58.             [section_id] => 8
    59.         )
    60.  
    61. )
    62.  
    63.  
    64.  
    65. // Получить
    66. Array
    67. (
    68.     [0] => Array
    69.         (
    70.             [name] => Один
    71.             [section_id] => 10
    72.         )
    73.  
    74.     [1] => Array
    75.         (
    76.             [name] => Два
    77.             [section_id] => 10
    78.         )
    79.  
    80.     [2] => Array
    81.         (
    82.             [name] => Три
    83.             [section_id] => 10
    84.         )
    85.  
    86. )
    87.  
    88.  
    89. Array
    90. (
    91.     [0] => Array
    92.         (
    93.             [name] => 1
    94.             [section_id] => 7
    95.         )
    96.  
    97.     [1] => Array
    98.         (
    99.             [name] => 2
    100.             [section_id] => 7
    101.         )
    102.  
    103. )
    104.  
    105.  
    106. Array
    107. (
    108.     [0] => Array
    109.         (
    110.             [name] => Uno
    111.             [section_id] => 8
    112.         )
    113.  
    114. )
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.028
    Симпатии:
    214
    Предыдущие два ваших затруднения были однотипны с текущим.
    Неужели решения не подвигли вас на, хотя бы, попытку разобраться в их механизме?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.069
    Симпатии:
    1.161
    Адрес:
    Лень
    а, у меня же есть бабка гадалка для таких случаев.
    /hesoyam @Babka_Gadalka getCode
     
  4. Babka_Gadalka

    Babka_Gadalka Новичок

    С нами с:
    16 фев 2019
    Сообщения:
    153
    Симпатии:
    18
    Адрес:
    Москва, Пушкина, Избушкина, 2й этаж душечка.
    PHP:
    1. <?php
    2.  
    3. $a = [
    4.     ['id'=>10],
    5.     ['id'=>7],
    6.     ['id'=>8],
    7. ];
    8.  
    9. $b = [
    10.     ['name'=>'Один','section_id'=>10],
    11.     ['name'=>'Два','section_id'=>10],
    12.     ['name'=>'Три','section_id'=>10],
    13.    
    14.     ['name'=>1,'section_id'=>7],
    15.     ['name'=>2,'section_id'=>7],
    16.    
    17.     ['name'=>'Uno','section_id'=>8],
    18. ];
    19.  
    20.  
    21.  
    22.  
    23.  
    24. $new = [];
    25.  
    26. $ids = array_column ( $a, 'id' );
    27.  
    28. foreach ( $b AS $key => [ 'name' => $name, 'section_id' => $section_id ] )
    29. {
    30.     if ( in_array ( $section_id, $ids ) )
    31.     {
    32.         $new[$section_id][] = $b[$key];
    33.     }
    34. }
    35.  
    36.  
    37.  
    38.  
    39. // response
    40. foreach ( array_values ( $new ) AS $covid )
    41. {
    42.     print_r ( $covid );
    43. }
    PHP:
    1. (
    2.     [0] => Array
    3.         (
    4.             [name] => Один
    5.             [section_id] => 10
    6.         )
    7.  
    8.     [1] => Array
    9.         (
    10.             [name] => Два
    11.             [section_id] => 10
    12.         )
    13.  
    14.     [2] => Array
    15.         (
    16.             [name] => Три
    17.             [section_id] => 10
    18.         )
    19.  
    20. )
    21.  
    22. (
    23.     [0] => Array
    24.         (
    25.             [name] => 1
    26.             [section_id] => 7
    27.         )
    28.  
    29.     [1] => Array
    30.         (
    31.             [name] => 2
    32.             [section_id] => 7
    33.         )
    34.  
    35. )
    36.  
    37. (
    38.     [0] => Array
    39.         (
    40.             [name] => Uno
    41.             [section_id] => 8
    42.         )
    43.  
    44. )