php – mysql返回多级数组

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – mysql返回多级数组脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用三个与 PHP应用程序相关的MysqL表.有些测试有很多问题,问题有很多答案.我想做的是循环数据如下:

foreach($tests as $test)
{
    echo $test->testName;

    foreach($test->questions as $question)
    {
        echo $question->questionText;

        foreach($question->answers as $answer)
        {
            echo $answer->answerText;
        }
    }
}

我想知道的是MySQL查询PHP代码将以这种方式循环遍历它?

编辑MysqL无法返回这样的数组,我应该说的是MysqL PHP代码的样子.

为清楚起见,表格是测试,问题和答案.问题表包含test_id列,答案包含question_id

谢谢!

我想要回来的结构将是:

array(
    'testName' = 'Test name string','questions' = array(
        array(
            'questionId' = 1,'questionText' = 'Question string','answers' = array(
                array(
                    'answerId' = 1,'answerText' = 'Answer string'
                ),array(
                    'answerId' = 2,'answerText' = 'Answer string'
                )
            )
        )
    )
);

编辑

我目前的实现如下,我想要做的是急切加载数据而不是执行如此多的查询

$tests = getTests();

foreach($tests as $test){

    $questions = getQuestions($test->id);

    foreach($questions as $question){

        $answers = getAnswers($question->id);

        foreach($answers as $answer){

            // do answer things

        }

    }

}

解决方法

$MysqLi = new MysqLi("localhost","my_user","my_password","world");


$query = "SELECT testname,question,answer
    From tests 
    JOIN questions ON (tests.id = question.test_id)
    JOIN answers ON (questions.id = answers.id)
    WHERE 'your condITion'
    ORDER BY tests.id,question.id"

$result = $MysqLi->query($query);

您可以使用in_array函数来获得所需的结果(您可以生成数组或打印结果).以下是打印值的示例. (你可以使用id代替名称来改善)

$tests_arr = array();
$questions_arr = array();

while( $row = $result->fetch_array(MysqLI_ASSOC) )
{
    if(!in_array($row['testname'],$test_arr)
    {
        $test_arr[] = $row['testname'];
        echo $row['testname'];
    }

    if(!in_array($result['question'],$question_arr))
    {
        $questions_arr[] = $row['question'];
        echo $row['question'];
    }

    echo $row['answer'];
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – mysql返回多级数组全部内容,希望文章能够帮你解决php – mysql返回多级数组所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。