2015-11-12 3 views
1

У меня есть элементы массива с некоторыми массивами. Теперь я хочу добавить массив item_optional в начало элементов массива.Как добавить массив в массив

Это то, что я пробовал, но я думаю, что это не правильно:

$item_optional = array(
    'harry' => array('name'=>'test1', 'code'=>1697, 'hmp'=>'x1') 
); 

$items = array(
    'denise' => array('name'=>'test2', 'code'=>2697, 'hmp'=>'x2'), 
    'mike' => array('name'=>'test3', 'code'=>3697, 'hmp'=>'x3'), 
    'richard' => array('name'=>'test4', 'code'=>4697, 'hmp'=>'x4') 
); 

array_unshift($items, $item_optional); 

Вывод должен быть:

$items = array(
    'harry' => array('name'=>'test1', 'code'=>1697, 'hmp'=>'x1'), 
    'denise' => array('name'=>'test2', 'code'=>2697, 'hmp'=>'x2'), 
    'mike' => array('name'=>'test3', 'code'=>3697, 'hmp'=>'x3'), 
    'richard' => array('name'=>'test4', 'code'=>4697, 'hmp'=>'x4') 
); 
+2

array_merge() array_merge - Объединение одного или нескольких массивов http://php.net/manual/en/function.array-merge.php –

+1

HTTP: // PHP. net/manual/en/book.array.php даже http://php.net/manual/en/function.array-combine.php может работать здесь. У вас много вариантов. –

ответ

5

Вы можете попробовать:

$item_optional = array(
    'harry' => array('name'=>'test1', 'code'=>1697, 'hmp'=>'x1') 
); 

$items = array(
    'denise' => array('name'=>'test2', 'code'=>2697, 'hmp'=>'x2'), 
    'mike' => array('name'=>'test3', 'code'=>3697, 'hmp'=>'x3'), 
    'richard' => array('name'=>'test4', 'code'=>4697, 'hmp'=>'x4') 
); 

Код:

$items = $item_optional + $items; 

Результат:

array (size=4) 
    'harry' => 
    array (size=3) 
     'name' => string 'test1' (length=5) 
     'code' => int 1697 
     'hmp' => string 'x1' (length=2) 
    'denise' => 
    array (size=3) 
     'name' => string 'test2' (length=5) 
     'code' => int 2697 
     'hmp' => string 'x2' (length=2) 
    'mike' => 
    array (size=3) 
     'name' => string 'test3' (length=5) 
     'code' => int 3697 
     'hmp' => string 'x3' (length=2) 
    'richard' => 
    array (size=3) 
     'name' => string 'test4' (length=5) 
     'code' => int 4697 
     'hmp' => string 'x4' (length=2) 
+0

'$ item_optional + $ items' это не JS ;-)' + 'работает? –

+0

Хм .. Извините, я не понял. Я думаю, что это работает (по крайней мере, для этого случая). –

+0

Это действительно работает! Фантастический, узнал что-то новое сегодня! –

4

Попробуйте array_merge:

$items = array_merge($item_optional, $items); 

или вы можете использовать + operator

$items = $item_optional + $items; 
4

Вы можете использовать array_merge().

Это положит массив в конец другого массива. Тогда ваш первый аргумент будет вашим массивом сверху, а второй аргумент будет массивом конца.

$items = array_merge($item_optional, $items); 

Дополнительная информация: array_merge()

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