Не получается объединить массивы

Тема в разделе "Как сделать...", создана пользователем Menro, 14 ноя 2019.

  1. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    686
    Симпатии:
    129
    Всем привет!
    Имею два массива:

    $array1 и $array2.
    В обоих одинаковое количество элементов.

    $array1

    Код:
        [0] => Array
            (
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    
        [1] => Array
            (
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    $array2

    Код:
    [0] => WP_Post Object
            (
                [ID] => 6798
            )
    
    [1] => WP_Post Object
            (
                [ID] => 6799
            )
    
    Хочу их склеить в одно, что бы получилось:

    Код:
    [0] => WP_Post Object
            (
                [ID] => 6798
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    
    [1] => WP_Post Object
            (
                [ID] => 6799
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    Пробую использовать array_merge(), но тогда второй массив просто добавляется к первому вниз.
    Что-то запутался, подскажите кто может!
     
  2. CAPAXA

    CAPAXA

    Регистр.:
    7 июн 2007
    Сообщения:
    984
    Симпатии:
    588
    Второй массив - не массив. Обратите внимание на Object
     
    Menro нравится это.
  3. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    686
    Симпатии:
    129
    Спасибо, понял, что это не массив.
    Можете подсказать как преобразовать в массив?
    $array = (array) $array2 не помогает.
     
  4. borodatych

    borodatych Постоялец

    Регистр.:
    24 июн 2016
    Сообщения:
    128
    Симпатии:
    78
    Если размерность $array1 и $array2 одинаковые то только по индексам с перебором одного из них
     
    Menro нравится это.
  5. CAPAXA

    CAPAXA

    Регистр.:
    7 июн 2007
    Сообщения:
    984
    Симпатии:
    588
    Второй массив каким образом получаете?
     
  6. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    686
    Симпатии:
    129
    Спасибо, ваш вопрос натолкнул меня на верную мысль.
    Нужно просто собирать свой массив сразу, а не собирать его, а потом лепить к нему другой.
     
  7. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    686
    Симпатии:
    129
    Одну задачу решил, теперь вот думаю как решить другую. Может кто подскажет.

    Есть массив:

    Код:
    [0] => Array
            (
                [ID] => 6798
                [post_title] => МРТ головного мозга (стандартный протокол, включающий Т2 акс, Т2 FLAIR саг, Т1 кор) 0,35T
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    
    [1] => Array
            (
                [ID] => 6799
                [post_title] => Исследование головного мозга после введения контрастного вещества при МРТ
                [parent_category] => Лучевая диагностика
                [child_category] =>
            )
    [54] => Array
            (
                [ID] => 8421
                [post_title] => Рентгенография зубов (1 снимок)
                [parent_category] => Лучевая диагностика
                [child_category] => Рентгенологические исследования
            )
    Я хочу сделать список услуг с заголовками их категорий и подкатегорий (parent_category, child_category).

    Типа:

    Лучевая диагностика
    • МРТ головного мозга (стандартный протокол, включающий Т2 акс, Т2 FLAIR саг, Т1 кор) 0,35T
    • Исследование головного мозга после введения контрастного вещества при МРТ
    • ....
    Рентгенологические исследования
    • Рентгенография зубов (1 снимок)
    • ...
     
  8. borodatych

    borodatych Постоялец

    Регистр.:
    24 июн 2016
    Сообщения:
    128
    Симпатии:
    78
    Если правильно понял, в цикле while сделать $arr[parent_category_id][] = $row ??
     
  9. Menro

    Menro web, seo, email, hack

    Регистр.:
    27 янв 2008
    Сообщения:
    686
    Симпатии:
    129
    Извините, но ничего не понял((
     
  10. borodatych

    borodatych Постоялец

    Регистр.:
    24 июн 2016
    Сообщения:
    128
    Симпатии:
    78
    У вас на каком-то этапе должно происходить примерно так:
    Код:
    // $L - коннект к базе
    $sql = "ваш запрос";
    $res = $L->query($sql);
    while( $row = $res->fetch_assoc() )
    {
        // И вот тут вы делаете что-то наподобие
        $arr[] = $row;
        // Попробуйте так
        $arr[$row['parent_id']][] = $row;
        // Где parent_id название вашего поля содержащие ID родительской директории
    }