从查询中分解数组

时间:2012-01-10 20:40:43

标签: php mysql arrays

我无法让阵列显示出来。

$womensLevels = array('WEXHIB' => 'Exhib Camp/Test', 'WLEVEL01' => 'Level 1', 'WLEVEL02' => 'Level 2', 'WLEVEL03' => 'Level 3', 'WLEVEL04' => 'Level 4', 'WLEVEL05' => 'Level 5', 'WLEVEL06' => 'Level 6', 'WLEVEL07' => 'Level 7', 'WLEVEL08' => 'Level 8', 'WLEVEL09' => 'Level 9', 'WLEVEL10' => 'Level 10', 'WOPEN' => 'Open', 'WPREPOPT' => 'Prep OPT', 'WTOPS' => 'TOPS');

当我执行查询并将其放入我的视图(html)时,它会以此结束。我只想让Code键和Description键显示出值。

[0]=>
  array(2) {
    ["Code"]=>
    string(4) "IW01"
    ["Description"]=>
    string(13) "Intro Level 1"
  }
  [1]=>
  array(2) {
    ["Code"]=>
    string(4) "IW02"
    ["Description"]=>
    string(13) "Intro Level 2"
  }
  [2]=>
  array(2) {
    ["Code"]=>
    string(4) "IW03"
    ["Description"]=>
    string(13) "Intro Level 3"
  }

以下是我的疑问。

这是阵列的来源。

$womensLevels = sprintf("SELECT `Code`,`Description` FROM `mb_ro_type_codes` where `Program` = '%s'", $sanction->Program);

$smarty->assign('womensLevels', $db->query($womensLevels));

这是我的html,我将变量放入控制器中。

{html_checkboxes name='code' options=$womensLevels selected=$checked}

我想我想问的是如何分解我的阵列?

1 个答案:

答案 0 :(得分:2)

您必须循环db查询结果并以所需格式构建另一个数组,而不是直接将查询结果传递给模板。像这样:

$results = $db->query($womensLevels);
$formattedResults = array();
foreach($results as $result) {
    formattedResults[$result['Code']] = $result['Description'];
}
$smarty->assign('womensLevels', $formattedResults);