如何将值添加到关联数组中?
问题描述:
如果我想在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)
。那么将值添加到循环内的关联数组中的正确方法是什么?
答
创建你的钥匙临时数组,然后按下该临时数组到主之一:
$arr = [];
loop(condition) {
$tmp = [];
$tmp['some_key'] = 'some value';
$tmp['other_key'] = 'other value';
$arr[] = $tmp;
}
答
这不会覆盖你的价值观:
$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;
}
}