2012-08-08 75 views
-1

如果我想在while循環中向數組添加值,我可以做$arr[] = "some"。但是,我怎麼能做到這一點,如果我有一個關聯數組,例如:如何將值添加到關聯數組中?

while($result = $result->fetch_array(MYSQLI_ASSOC)) 
{ 
    $arr[]["some_key"] = "some"; 
    $arr[]["other_key"] = "some2"; 
} 

但是,這會給我像Array ([0] => Array ([some_key] => some) [1] => Array ([other_key] => some2)。那麼將值添加到循環內的關聯數組中的正確方法是什麼?

回答

2

創建你的鑰匙臨時數組,然後按下該臨時數組到主之一:

$arr = []; 
loop(condition) { 
    $tmp = []; 
    $tmp['some_key'] = 'some value'; 
    $tmp['other_key'] = 'other value'; 
    $arr[] = $tmp; 
} 
1

這不會覆蓋你的價值觀:

$arr = array(); 
while($result = $result->fetch_array(MYSQLI_ASSOC)) 
{ 
    $tmp = array(); 
    foreach($result as $key=>$value) 
    {   
     $tmp[$key] = $value; 
    } 
    $arr[]=$tmp; 
} 

或者更簡潔地說:

$arr = array(); 
while($result = $result->fetch_array(MYSQLI_ASSOC)) 
{ 
    $arr[]=$result; 
} 

由於PHP默認爲複製而不是引用。

如果您想將它們存儲爲assoc。您可能會這樣做陣列陣列:

$arr = array(); 
while($result = $result->fetch_array(MYSQLI_ASSOC)) 
{ 
    foreach($result as $key=>$value) 
    {   
     if(!isset($arr[$key])){ 
     $arr[$key] = array(); 
     } 
     $arr[$key][] = $value; 
    } 
}