соединить внутренние масивы

Тема в разделе "PHP", создана пользователем newbigmir, 1 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. newbigmir

    newbigmir

    Регистр.:
    31 июл 2007
    Сообщения:
    283
    Симпатии:
    23
    Код:
    $a1= array(
    'a_inner_array'=array(
    'a'=>'111',
    'b'=>'222'
    )
    )
    
    $a2= array(
    'a_inner_array'=array(
    'c'=>'333'
    )
    )

    нужно сделать что б
    $a1+$a2 =

    Код:
    $a1= array(
    'a_inner_array'=array(
    'a'=>'111',
    'b'=>'222',
    'c'=>'333'
    )
    )


    если использовать array_merge ($a1, $a2)
    то значени замещаются, а не плюсуются.

    единственное решение это
    foreach($a1 as $key=> $value ){
    вручную перебирать и суммировать
    }

    другие варианты есть?
     
  2. Alix

    Alix

    Регистр.:
    27 янв 2008
    Сообщения:
    234
    Симпатии:
    84
    PHP:
    $a3 = array('a_inner_array' => array_merge($a1['a_inner_array'], $a2['a_inner_array']));
     
  3. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    PHP:
    $a3['a_inner_array']=array_merge($a1['a_inner_array'],$a2['a_inner_array']);
    пробовал ?
     
  4. newbigmir

    newbigmir

    Регистр.:
    31 июл 2007
    Сообщения:
    283
    Симпатии:
    23
    благодарю :ay:

    а если такая ситуация:


    Код:
    $a1= array(
    'a_inner_array_1'=array(
    'a'=>'111',
    'b'=>'222'
    )
    'a_inner_array_2'=array(
    'a'=>'111',
    'b'=>'222'
    )
    'a_inner_array_3'=array(
    'a'=>'111',
    'b'=>'222'
    )
    'a_inner_array_4'=array(
    'a'=>'111',
    'b'=>'222'
    )
    )
    
    
    
    $a2= array(
    'a_inner_array_1'=array(
    'c'=>'333'
    )
    'a_inner_array_2'=array(
    'c'=>'333'
    )
    'a_inner_array_3'=array(
    'c'=>'333'
    )
    'a_inner_array_4'=array(
    'c'=>'333'
    )
    )
    

    есть ли auto_merge для всех внутренних если без цыклов?
     
  5. _AlexSK_

    _AlexSK_ Постоялец

    Регистр.:
    30 окт 2008
    Сообщения:
    59
    Симпатии:
    8
    PHP:
    foreach ( $a1 as $k => $v $a3[$k] = array_merge$a1[$k], $a2[$k] );
    Так можно. Как без цикла - не знаю.
     
Статус темы:
Закрыта.