【问题标题】:Pick value from two-dimensional array based on value stored inside key?根据存储在键中的值从二维数组中选择值?
【发布时间】:2012-04-25 07:10:56
【问题描述】:

嗨朋友们,我正在调查我需要从存储在其中的数组中提取一个数组

怎么做我希望根据问题 id 提取答案数组,例如 13。

我有问题编号。 answer 数组与 question 相关联。

.如何根据问题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

                        )


                        )



                )

        )

任何帮助将不胜感激:)

【问题讨论】:

    标签: php arrays multidimensional-array extract


    【解决方案1】:

    首先,这不是二维数组,而是数组树。二维数组对于每个数组[x] 总是有一个元素数组[x][y],而不是任何数组[x][y][z]。

    用foreach遍历数组,当找到一个id对应question_id的元素时返回一个答案列表。

    例子:

      foreach($questions as $question) {
        if($question['que_info']['question_id'] === $questionId)
          return $question['answers'];
      }
    

    【讨论】:

    • 谢谢您的回复,您是对的,我是数组的初学者 :) 我会尝试一下,我会同时拥有问题 ID 示例 13 的问答数组
    • 而且我有点儿白痴:)
    • 我用你的方法得到了答案很简单,非常感谢:)
    【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多