-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)。那么将值添加到循环内的关联数组中的正确方法是什么?

4

2 回答 2

2

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

$arr = [];
loop(condition) {
    $tmp = [];
    $tmp['some_key'] = 'some value';
    $tmp['other_key'] = 'other value';
    $arr[] = $tmp;
}
于 2012-08-08T23:23:08.723 回答
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;  
    }
}
于 2012-08-08T23:35:37.313 回答