2015-11-30 4 views
0

У меня есть массив (сгенерированный функцией), содержащий массивы, и я хочу добавить их в другой массив.Добавить сгенерированные массивы в другой массив

foreach ($elements as $element) { 
     $array[] = 
      array(
       'name'   => 'name_'.$element->name, 
       'desc'   => 'Stuff for for '.$element->desc, 
       'attributes' => array(), 
       'type'   => 'textarea' 
      ); 
} 

И у меня есть это:

$settings['var'] = array(
    array(
     array(
      'name'   => 'Test 1', 
      'desc'   => 'This is test 1', 
      'attributes' => array(), 
      'type'   => 'textarea' 
     ), 
     array(
      'name'   => 'Test 2', 
      'desc'   => 'This is test 2', 
      'attributes' => array(), 
      'type'   => 'textarea' 
     ), 
    ), 
); 

Теперь я хочу, чтобы добавить все элементы первого массива (массив []) в массив настроек.

Если я делаю это так:

$settings['var'] = array(
     array(
      array(
       'name'   => 'Test 1', 
       'desc'   => 'This is test 1', 
       'attributes' => array(), 
       'type'   => 'textarea' 
      ), 
      $array[0], 
      $array[1]... 

это работает, но я хочу, чтобы добавить все массивы в $ массив [] в массив. Я не могу использовать foreach здесь, так как я могу это сделать?

+0

В массиве '$ settings ['var']' содержится что-либо перед вашим циклом? Если это так, используйте [array_merge] (http://php.net/manual/en/function.array-merge.php). Если нет, то просто используйте '$ settings ['var'] = $ array;' –

+0

Вы пытаетесь рекурсивно сократить все вспомогательные массивы в один массив? –

ответ

-1

Чтобы получить результат, который вы хотите, вы можете использовать array_merge внутри массива:

$settings['var'] = array(array_merge(array1, array2)) 

элементы array1 и array2 массивы в вашем случае.

Для получения более подробной информации, пожалуйста, обратитесь к documentation.

+0

И как я могу установить уровень слияния? Потому что я не хочу объединять его в первый, но на второй уровень массива (см. Пример) – Zoker

+0

Использовать array_merge внутри массива: $ settings ['var'] = array (array_merge (array1, array2)), элементы array1 и array2 в вашем случае являются массивами. – Assil

Смежные вопросы