2015-04-16 2 views
0

У меня есть массив, объявленный вне цикла foreach, который я использую для добавления значения в массив. Прямо сейчас, его переписывающие значения в массиве в течение каждого цикла. Цель состоит в том, чтобы не перезаписывать, а добавлять значение к массиву, поэтому, когда цикл foreach завершен, у меня будут полные значения вместо значений из последнего цикла. Вот примерКак добавить массив в ассоциативный массив в цикле foreach

$vars = array(
      'year' => null, 
      'make' => null, 
      'model' => null 
     ); 

foreach(){ 

    $year = array(
    '2000', 
    '2001', 
    '2002' 
); 

$make = array('honda'); // only 1 value 
$model = array('accord'); // only 1 value 

// do something here to append $year, $make, $model to the correct key in $vars 

} 

поэтому результат должен выглядеть следующим образом

$vars = array 
(
       'year' => array('2000','2001','2002,'2003','2004','2005','2006'), 
       'make' => array('honda','toyota','nissan'), 
       'model' => array('accord','camery','altima') 
) 

может быть где-то в Еогеасп, чтобы проверить и избежать вставки повторяющихся значений было бы хорошо. например, нет повторяющихся лет, моделей и моделей.

+0

Try append_toyota и append_nissan;) Пожалуйста, отрегулируйте свой вопрос –

+0

. В значительной степени нет причин устанавливать эти значения в виде массива. – Anthony

ответ

2

Попробовать -

$vars['year'] = array_merge($var['year'], $year); 

То же самое с make & model.

+3

И чтобы избежать дублирования значений, проверьте метод array_unique => http://php.net/array_unique – Tyrael

+0

'array_unique' поможет, если он содержит повторяющиеся значения. –

0

Попробуйте

foreach(){ 

    $year = array('2000','2001','2002'); 

    $make = array('honda'); 
    $model = array('accord'); 

    array_push($vars['year'],$year); 
    array_push($vars['make'],$make); 
    array_push($vars['model'],$model); 

    } 
0

вы не имеете общий параметр для вставки всех параметров в одном Еогеасп() loop.try больше петель, как этот

$vars = array(
'year' => null, 
'make' => null, 
'model' => null 
); 
$year = array(
'2000', 
'2001', 
'2002' 
); 
$make = array('honda'); // only 1 value 
$model = array('accord'); // only 1 value 

foreach ($year as $years) { 
$vars['year'][] = $years; 
} 
foreach ($make as $makes) { 
$vars['make'][] = $makes; 
} 
foreach ($model as $models) { 
$vars['model'][] = $models; 
} 
Смежные вопросы