0

我从一个表中提取 3 个列并将它们存储在一个数组中以填充下拉菜单。ref_code 用于决定它将转到哪个下拉列表('Module'、'Customer'、'Application'),而 id 是选择值,ref_desc 是显示文本。

foreach ($test as $t) {
    $aa[] = array($t->ref_code => array('id'=>$t->id, 'ref_desc'=>$t->ref_desc));
};

我一直在尝试使用 $aa['ref_code'] 检索它们,但没有取得任何成功。请帮忙。

This question is similar,但我无法检索我想要的值。

我在另一个论坛上找到了解决方案,但稍后我也会尝试您的解决方案。非常感谢!

foreach ($aa as $a => $d) {
    foreach ($d as $ref_code => $dd) {
        echo "<p>". $ref_code ."</p>";
        echo "<p>". $dd['ref_desc'] ."</p>";
        echo "<p>". $dd['id'] ."</p>";
    };
};
4

2 回答 2

0

你需要一个三维数组:

下拉 => ids => 显示文本

开始了:

// fill in:
$aa = array();
foreach ($test as $t) {

    if ( !isset($aa[$t->ref_code]) )
        $aa[$t->ref_code] = array();

    $aa[$t->ref_code][$t->id] = $t->ref_desc;

};


// have a drop down:
$myDropDown = 'Customer';
foreach ( $aa[$myDropDown]  as $id => $displaytext )
{
      echo "<option value=\"" . $id . "\">" . $displaytext . "</option>";
}
 .... etc.
于 2013-10-31T09:43:43.093 回答
0

你为什么不这样写呢?ref_code(如果它是唯一的)是数组的键。

foreach ($test as $t) {
        $aa[$t->ref_code] = array('id'=>$t->id, 'ref_desc'=>$t->ref_desc);
    };
于 2013-10-31T09:30:15.807 回答