我正在尝试使用以下代码构建3维数组:
while ($Inf = $queryPrep->fetch(PDO::FETCH_OBJ)) {
$cie_Names = array(
$Inf->dp_id=>array(
'name'=> $Inf->dp_desc,
'enabled'=>$Inf->dp_enabled));
}
不幸的是,这段代码只返回了最后一条记录,所以我找到了:
$cie_Names = array();
while ($Inf = $queryPrep->fetch(PDO::FETCH_OBJ)) {
$cie_Names = [$Inf->dp_id]=>array(
'name'=> $Inf->dp_desc,
'enabled'=>$Inf->dp_enabled);
}
但现在我收到了错误。
我需要以这种方式调用我的数组:
foreach ($depts as $ID => $DeptDetail) {
$optlist .= '<option value=' . $ID . '>' . $DeptDetail['name'] . $DeptDetail['enabled'] . '</option>';
}
答案 0 :(得分:0)
通过分配到arrayName[]
:
while ($Inf = $queryPrep->fetch(PDO::FETCH_OBJ)) {
$cie_Names[] = array(
$Inf->dp_id=>array(
'name'=> $Inf->dp_desc,
'enabled'=>$Inf->dp_enabled
)
);
}
然而,这似乎是一个糟糕的数组布局 - cie_Names
数组的每个元素都是一个具有不同键的关联数组;访问它们将是困难的,因为你不知道键如何映射到数组索引,你将不得不做一个循环来找到任何东西。可能更有用的是:
while ($Inf = $queryPrep->fetch(PDO::FETCH_OBJ)) {
$cie_Names[$Inf->dp_id] = array(
'name'=> $Inf->dp_desc,
'enabled'=>$Inf->dp_enabled
);
}
cie_Names
数组的键将由dp_id
值组成。