2015-04-16 52 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') 
) 

也许某处的foreach检查,避免插入重复的值将是很好。例如没有重复的年份,品牌和型号。

+0

尝试append_toyota和append_nissan;) 请调整您的问题 –

+0

几乎没有理由将这些值设置为数组。 – Anthony

回答

2

尝试用 -

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

同样的,make & model

+3

为了避免重复的值,请检查array_unique method => 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

你没有一个共同的参数中插入一个的foreach()的所有参数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; 
} 
相关问题