如果我想在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)
的东西。那么将值添加到循环内的关联数组中的正确方法是什么?
答案 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;
}
}