猿问

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 

)

发生什么事?


30秒到达战场
浏览 106回答 2
2回答

一只萌萌小番薯

做如下数组赋值:while($row = mysqli_fetch_assoc($result)){   $array[$row['code']]= $row['name'];}如果代码可能相同并且您想获得所有名称,那么您必须进行多维数组分配,如下所示:while($row = mysqli_fetch_assoc($result)){   $array[]= array($row['code']=>$row['name']);}

RISEBY

我猜'code'和'name'变量来自$rowif所以你可以使用以下语法$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 中添加的
随时随地看视频慕课网APP
我要回答