三维数组

时间:2014-02-25 02:04:19

标签: php multidimensional-array

我正在尝试使用以下代码构建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>';
}

1 个答案:

答案 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值组成。