2014-03-30 46 views
0

我想添加到一個循環中的數組,但只添加循環中的第一個元素。如何添加到循環中的數組

陣列

array (size=7) 
    0 => 
    array (size=2) 
     'id' => int 1 
     'name' => string 'john' (length=11) 
    1 => 
    array (size=2) 
     'id' => int 2 
     'name' => string 'adam' (length=13) 
    2 => 
    array (size=2) 
     'id' => int 3 
     'name' => string 'mary' (length=11) 

我的循環

foreach ($loops as $key => $loop) { 
    $idArray['id'] = $loop['id']; 
} 
var_dump($idArray); die(); 

難道我做錯什麼?

+0

那是因爲你overwritting的關鍵。另外,數組不能有相同的鍵。 –

+0

你一遍又一遍覆蓋同一個變量 – Chris

回答

2

您可以通過將新值分配給數組來覆蓋舊值。數組不能有相同的鍵。

試試這個:

foreach ($loops as $key => $loop) 
{    
    $idArray['id'][] = $loop['id']; 
} 
var_dump($idArray); die(); 

所以你將項目添加到您的陣列內的陣列。

0

如果您希望$idarray的序數值成爲您正在迭代的主鍵值,則可以執行此操作。

$loops = array(array('id' => 1, 'name' => 'john'), /* ... */); 

foreach ($loops as $key => $loop) 
{    
    $idArray[$loop['id']] = $loop; 
} 
var_dump($idArray); die(); 

var_dump將揭示這種結構

array (size=7) 
    1 => 
    array (size=2) 
     'id' => int 1 
     'name' => string 'john' (length=4) 
    2 => 
    array (size=2) 
     'id' => int 2 
     'name' => string 'adam' (length=4) 
    3 => 
    array (size=2) 
     'id' => int 3 
     'name' => string 'mary' (length=4) 
相關問題