Php 三维阵列
我正试图用以下代码构建一个三维数组:Php 三维阵列,php,multidimensional-array,Php,Multidimensional Array,我正试图用以下代码构建一个三维数组: 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 = 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>';
}
foreach($ID=>$DeptDetail){
$optlist.=''.$DeptDetail['name'].$DeptDetail['enabled'].';
}
通过分配给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\u Names
数组的键将由dp\u id
值决定。谢谢,它可以工作,我更改为:$cie\u Names[$Inf->dp\u id]=array('name'=>Inf->dp\u desc,'enabled'=>Inf->dp\u enabled);//通过在[]中添加“ID”,它解决了我的问题!