首页 > 解决方案 > 在多维数组中使用 getter 返回多个结果

问题描述

我写了一个函数,我必须用三个不同的答案返回一个相同的问题。

我设法提出了一个问题(我应该这样做,因为这三个问题都是一样的),但我很难弄清楚如何提出所有的答案。

转储$questions返回所有三个,但我的 foreach 只返回第一个。

$questions = $this->getQuestionRepository()->findBy([
        'user'      => $user,
    ]);

    $result = [];
    foreach ($questions as $question) {
        $result['question'] = $question->getQuestion();
        foreach ($questions as $answer) {
            $result['answers'] = [$answer->getAnswer()];
        }
    }

    return $result;

结果:

"data": {
    "question": "What is your name?",
    "answers": [
        "First answer"
    ]
},

标签: phpmultidimensional-arraygetter

解决方案


试试这个:

$questions = $this->getQuestionRepository()->findBy([
        'user'      => $user,
    ]);

    $result = [];
    foreach ($questions as $question) {
        $result['question'] = $question->getQuestion();
        foreach ($questions as $answer) {
            $result['answers'][] = $answer->getAnswer();
        }
    }

    return $result;

推荐阅读