0

次のような多次元配列があります。

Array ( 

[0] => Array ( [ans_id] => 1 [ans_name] => PHP Hypertext Preprocessor [ques_id] => 1 [right_ans] => Yes [ques_name] => What is the acronym of PHP? [section_id] => 1 [section_name] => PHP ) 

[1] => Array ( [ans_id] => 2 [ans_name] => Preety Home Page [ques_id] => 1 [right_ans] => No [ques_name] => What is the acronym of PHP? [section_id] => 1 [section_name] => PHP ) 

[2] => Array ( [ans_id] => 3 [ans_name] => Programmed Hypertext Page [ques_id] => 1 [right_ans] => No [ques_name] => What is the acronym of PHP? [section_id] => 1 [section_name] => PHP ) 

[3] => Array ( [ans_id] => 4 [ans_name] => Programmed Hypertext Preprocessor [ques_id] => 1 [right_ans] => No [ques_name] => What is the acronym of PHP? [section_id] => 1 [section_name] => PHP ) ) 

私のテーブルは次のようなものです:

ans_id  ans_name                       ques_id                right_ans

1   PHP Hypertext Preprocessor           1                         Yes

2   Preety Home Page                     1                          No

3   Programmed Hypertext Page            1                          No

4   Programmed Hypertext Preprocessor    1                          No

5   Andy Suraski                        12                          No

6   Zeev Gutman                         12                          No

7   Rasmus Lerdorf                      12                         Yes

8   Perl                                12                          No

一般的な質問 ID のセットで回答を取得したい

つまり、 に対するすべての回答の 1 セット、 に対するすべての回答のQues_id='1'2 番目のセットques_id='12'などです。

私はこのコードを使用することになっています:

foreach($all_ans_cat as $r)
{                       
   echo $r['ans_id']."  ".$r['ans_name']."<br>";
}

これは、テーブルに存在するすべての値を 1 つのセットとして取得し、2 番目のセットでも同じ値が表示されています。

4

2 に答える 2

0

ques_idでソートされたすべての回答を選択し、必要な構造を持つ配列を生成します

$questions = array();
$prevQuestionId = null;
foreach ($all_ans_cat as $r) {
    if ($r['ques_id'] !== $prevQuestionId) {
        $questions[] = array(); 
    }
    $questions[sizeof($questions)-1][] = $r;
    $prevQuestionId = $r['ques_id'];
}

結果の配列は次のようになります。

0:
    - [ans1, ques1]
    - [ans2, ques1]
    ...
1: 
    - [ans5, ques13]
    - [ans6, ques13]
    ...
...
于 2012-10-25T11:16:08.830 に答える
0

group by と集計関数を使用してクエリを使用できます

見て

http://www.w3schools.com/sql/sql_groupby.asp

于 2012-10-25T10:45:27.377 に答える