如何将数组的值显示为字符串或文本而不是索引值

时间:2017-04-07 17:22:41

标签: php

我有两个表格,其中每个部分有很多问题,当我回应我得到部分文本但问题为索引值0 1 2

<?php
$result = mysql_query($query);

if ($result) {
    $data = array();

    while ($row = mysql_fetch_assoc($result)) {
        $data[($row['SECTION_NAME'])][][($row['QUES_TEXT'])][]  = array(
            'SECTION' => $row['SECTION_NAME'],
            'QUESTION' => $row['QUES_TEXT'] 
        );
    }

    foreach ($data as $SECTION => $QUESTIONS) {
        echo '<h2>',htmlentities($SECTION),'</h2>';

        foreach ($QUESTIONS as $QUESTIONS_TEXT => $TEXT) {
            echo '<h2>',($QUESTIONS_TEXT),'</h2>';
        }
    }
}
?>

1 个答案:

答案 0 :(得分:0)

您正在创建额外的嵌套数组,并且还不需要parens:

$data[$row['SECTION_NAME']][][$row['QUES_TEXT']][]  = array(
  'SECTION' => $row['SECTION_NAME'],
  'QUESTION' => $row['QUES_TEXT'] 
);

应该是:

if (empty($data[$row['SECTION_NAME']]) {
  $data[$row['SECTION_NAME']] = array();
}
$data[$row['SECTION_NAME']][$row['QUES_TEXT']] = array(
    'SECTION' => $row['SECTION_NAME'],
    'QUESTION' => $row['QUES_TEXT'] 
);

另请参阅原始问题的评论,这不再是从PHP使用MySQL的安全方法。