PHP-关联数组的键can';不能分配
我有一个关于关联数组的家庭作业。但是,无法分配数组的键PHP-关联数组的键can';不能分配,php,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 = 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
)
发生了什么?执行如下数组分配:
while($row = mysqli_fetch_assoc($result)){
$array[$row['code']]= $row['name'];
}
while($row = mysqli_fetch_assoc($result)){
$array[]= array($row['code']=>$row['name']);
}
如果in-case代码可能相同,并且您希望获得所有名称,那么您必须进行多维数组赋值,如下所示:
while($row = mysqli_fetch_assoc($result)){
$array[$row['code']]= $row['name'];
}
while($row = mysqli_fetch_assoc($result)){
$array[]= array($row['code']=>$row['name']);
}
我猜'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);
速记数组语法([])可用于分解数组以进行赋值,如果我没记错的话,它是在PHP7.1中添加的您希望从哪里获得123和234?什么是
$code
和$name
?也显示代码的这一部分。您的$code
值显示为您不期望的返回值。我们需要看看它是从哪里来的,以便弄清楚到底发生了什么。