Как добавить массив в массив

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')
);
Теги:
arrays

3 ответа

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
    Хм .. Извините, я не понял. Я думаю, что это работает (по крайней мере, для этого случая).
Показать ещё 4 комментария
4

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

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

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

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

4

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

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

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

$items = $item_optional + $items;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню