2014-09-25 4 views
0

У меня есть многомерный массив в этом форматесмещение массива в массив PHP

[0] => Array 
    (
     [0] => Supplier 
     [1] => Supplier Ref 
    ) 

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

[0] => Array 
    (
     [0] => New Field 
     [1] => Supplier 
     [2] => Supplier Ref 
    ) 

Если я могу запустить цикл через каждый массив, используя for/foreach, тогда это было бы здорово, но я изо всех сил пытаюсь найти хороший способ сделать это. Есть идеи?

Благодаря

+0

[ 'array_unshift()'] (http://php.net/manual/en/function .array-unshift.php) 'array_unshift - Подготовить один или несколько элементов к началу массива' -> '$ array = array_unshift ($ array, 'New Field');' – Sean

+0

^^^ В контексте вашего цикла: 'foreach ($ external_array as & $ inner_array) {array_unshift ($ inner_array, 'New Field'); } '... обратите внимание на' & 'reference ... –

ответ

2

я могу думать о трех простых способов

  1. Используйте простой Еогеасп и array_unshift

    foreach($arr as &$item) { 
        array_unshift($item, 'new field'); 
    } 
    
  2. Используйте array_walk применить array_unshift к каждому элементу массива (будет модифицировать существующий массив)

    array_walk($array, function(&$item) { array_unshift($item, 'new field'); }); 
    
  3. Использование array_map и array_uns hift (возвращает новый массив - но массивы внутри исходного массива будет изменен, тем не менее)

    array_map(function(&$item) { 
        array_unshift($item, 'new field'); return $item; 
    }, $array); 
    
0

Вы можете использовать array_unshift(), чтобы компенсировать array в массиве php. Он добавляет один или несколько элементов в начало массива.

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