如何从PHP中的Multi-D数组检索值?

时间:2018-11-13 22:59:54

标签: php arrays

这里是用户生成的课程创建系统的数组。检索与[titreSection],[lessonTitle]和[lessonContent]键关联的值的最佳方法是什么?

此处的主要目标是允许用户创建包含标题的板块,该板块具有与该板块相关的若干课程和内容。顺序和逻辑保持不变。根据创建的课程的结构,只有部分的数量和[内容]会改变。

这是结果的foreach循环

$course = $_POST['section'];

foreach ($course as $key=>$value){

    foreach ($value as $key1=>$value1)

        foreach ($value1 as $key2=>$value2)

            foreach ($value2 as $key3=>$value3)
               echo $key3 . '==>' . $value3 . '<br >';

}

从这个结果来看,我如何只打印所有的[titreSection]?

titreSection==>Section 1
lessonTitle==>Lesson 1
lessonContent==>Contenu 1
lessonTitle==>Lesson 2
lessonContent==>Contenu 2
titreSection==>Section 2
lessonTitle==>Lesson 3
lessonContent==>Contenu 3
lessonTitle==>Lesson 4
lessonContent==>Contenu 4




Array
(
    [1] => Array
        (
            [titre] => Array
                (
                    [1] => Array
                        (
                            [titreSection] => Section 1
                        )

                )

            [contenu] => Array
                (
                    [1] => Array
                        (
                            [lessonTitle] => Lesson 1
                            [lessonContent] => Contenu 1
                        )

                    [2] => Array
                        (
                            [lessonTitle] => Lesson 2
                            [lessonContent] => Contenu 2
                        )

                )

        )

    [2] => Array
        (
            [titre] => Array
                (
                    [1] => Array
                        (
                            [titreSection] => Section 2
                        )

                )

            [contenu] => Array
                (
                    [3] => Array
                        (
                            [lessonTitle] => Lesson 3
                            [lessonContent] => Contenu 3
                        )

                    [4] => Array
                        (
                            [lessonTitle] => Lesson 4
                            [lessonContent] => Contenu 4
                        )

                )

        )

)

1 个答案:

答案 0 :(得分:0)

类似的事情可能会使您朝着正确的方向出发。我假设您的数据位于名为$sections的数组中。请注意,您的数据中的索引值(lessonTitletitreLesson)不一致,我假设它们都是titreLesson

foreach ($sections as $section) {
    echo "<h2>{$section['titre'][1]['titreSection']}</h2>\n";
    foreach ($section['contenu'] as $lesson) {
        echo "<h3>{$lesson['titreLesson']}</h3>\n";
        echo "<p>{$lesson['lessonContent']}</p>\n";
    }
}

输出

<h2>Section1</h2>
  <h3>Lesson1</h3>
    <p>Contenu1</p>
  <h3>Lesson2</h3>
    <p>Contenu2</p>
<h2>Section2</h2>
  <h3>Lesson3</h3>
    <p>Contenu3</p>
  <h3>Lesson4</h3>
    <p>Contenu4</p>

Demo on 3v4l.org