2015-04-16 87 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; 
} 
相關問題