PHP-无法分配关联数组的键

时间:2019-05-15 07:17:29

标签: php

我有一个有关关联数组的作业。但是,无法分配数组的键。

$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 
)

会发生什么?

2 个答案:

答案 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中添加的