我有一个有关关联数组的作业。但是,无法分配数组的键。
$array = array();
while($row = mysqli_fetch_assoc($result)){
// $code and $name are from database
$array += array("$code" => "$name");
}
print_r($array);
不显示
Array (
[123] => dave
[234] => linda
)
它显示
Array (
[0] => dave
[1] => linda
)
会发生什么?
答案 0 :(得分:1)
执行如下数组分配:
while($row = mysqli_fetch_assoc($result)){
$array[$row['code']]= $row['name'];
}
如果万一代码相同,并且您想获取所有名称,则必须进行多维数组分配,如下所示:
while($row = mysqli_fetch_assoc($result)){
$array[]= array($row['code']=>$row['name']);
}
答案 1 :(得分:0)
我猜想'code'和'name'变量来自$row
,如果您可以使用以下语法
$array = [];
while(['code' => $code, 'name' => $name] = mysqli_fetch_assoc($result)){
isset($code, $name) && ($array[$code] = $name); // isset is to avoid overriding an exisiting value with null it's not needed if the query limits that case
}
print_r($array);
速记数组语法([])可用于解构数组以进行赋值,如果我没记错的话,它是在PHP 7.1中添加的