2012-08-08 89 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; 
    } 
}