1

こんにちは友人私は調査に取り組んでいます私はその中に保存されている配列から配列を抽出する必要があります

方法例13などの質問IDに基づいて回答配列を抽出しようとしています。

私は質問IDを持っています。回答配列は質問に関連付けられています。

。質問IDの値に基づいてメイン配列から質問配列と回答配列を抽出する方法(例:13)

質問IDとそれに関連付けられたIDを持つ配列が必要な場合は、配列構造からどのように行うのですか?

私のコードはこんな感じです

Array
(
    [0] => Array
        (
            [que_info] => Array
                (
                    [question_id] => 13

                    [description] => Overall Customer Satisfaction.




                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer_id] => 45

                            [answer_text] => Very dissatisfied

                        )


                )

        )

    [1] => Array
        (
            [que_info] => Array
                (
                    [question_id] => 14

                    [description] => Progress (often referred to as Task Resolution or similar)


                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer_id] => 52

                            [answer_text] => None

                        )

                    [1] => Array
                        (
                            [answer_id] => 53

                            [answer_text] => Very little

                        )


                        )



                )

        )

どんな助けでもありがたいです:)

4

2 に答える 2

2
function find_question($array, $id) {
    foreach ($array as $arr)
    {
        if ($arr['que_info']['question_id'] == $id)
            return $arr;
    }
}

var_dump(find_question($array, 13));
var_dump(find_question($array, 14));
于 2012-04-25T07:30:29.340 に答える
2

まず、これは2D配列ではなく、配列ツリーです。2D配列には、すべての配列[x]に対して常に要素array [x] [y]があり、array [x][y][z]はありません。

foreachを使用して配列を反復処理し、question_idに対応するIDを持つ要素を見つけたら回答リストを返します。

例:

  foreach($questions as $question) {
    if($question['que_info']['question_id'] === $questionId)
      return $question['answers'];
  }
于 2012-04-25T07:31:10.413 に答える