如何将值添加到关联数组中?

时间:2012-08-08 23:20:53

标签: php arrays

如果我想在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 个答案:

答案 0 :(得分:2)

为您的键创建一个临时数组,然后将该临时数组推送到主数组:

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

答案 1 :(得分: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默认为复制而不是引用。

如果您想将它们存储为关联。你可以这样做的数组数组:

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