Foreach循环多维数组

时间:2015-03-30 01:42:48

标签: php arrays loops multidimensional-array foreach

我正在使用多维数组,我从第三方源接收,因此无法更改它的布局。它用于冒号,我想循环模块名称而不是ID。

使用此foreachloop时

<?php echo "<ul>";
                foreach($array['Course']['Modules']['Module'] as $key => $value)
                {
                    foreach($value as $keys => $values)
                    {
                        echo "<li>";
                            foreach($values as $thirdkey => $thirdvalues)
                            {
                            echo $thirdvalues . " " ;
                            }
                        echo "</li>";
                }
                    }
                echo "</ul>"
            ?>

我得到以下哪个没问题,但我不需要moduleID:

003646 T.I.G. WELDING ALUMINIMUM INTERMEDIATE
003644 T.I.G. WELDING STAINLESS STEEL INTERMEDIATE
003633 MIG WELDING INTERMEDIATE
003552 MANUAL METAL ARC WELDING INTERMEDIATE
000016 MOUNTING OF ABRASIVE WHEELS
003299 MACHINE TOOLS (WELDING)
000001 INDUCTION
000002 CAREER PLANNING AND JOB SEEKING SKILLS
000029 OXY-ACETYLENE CUTTING
003757 THEORY OF WELDING
000003 IN-COMPANY
000664 SAFEPASS

这是我的阵列,任何人都可以帮我回复模块标题??? 阵列

([Certification] => IT Systems Support - PC Maintenance (L1)
 [Modules] => Array
            (
                [Module] => Array
                    (
                        [0] => Array
                            (
                                [@attributes] => Array
                                    (
                                        [ModuleID] => 004839
                                        [Title] => IT SYSTEMS SUPPORT- PC MAINTENANCE
                                    )

                            )

                        [1] => Array
                            (
                                [@attributes] => Array
                                    (
                                        [ModuleID] => 007685
                                        [Title] => COMPTIA A+ - 220 801
                                    )

                            )

                        [2] => Array
                            (
                                [@attributes] => Array
                                    (
                                        [ModuleID] => 007684
                                        [Title] => COMPTIA A+ - 220-802
                                    )

                            )

                        [3] => Array
                            (
                                [@attributes] => Array
                                    (
                                        [ModuleID] => 004757
                                        [Title] => PREPARING FOR WORK
                                    )

                            )

                    )

            )

    )

提前感谢:)

2 个答案:

答案 0 :(得分:2)

你可以直接指向它。

foreach($array['Course']['Modules']['Module'] as $key => $value) {
    echo "<li>{$value['@attributes']['Title']}</li>";
}

旁注:很可能这是一个SimpleXML对象,被送入json编码/解码。

$array = json_decode(json_encode($xml), true); // actually don't need to do this one

我建议只使用SimpleXML,因为它已经能够获取所有这些值。

答案 1 :(得分:0)

你没关心尝试$thirdvalues["Title"]对吗?看起来像是一团糟但是我不明白为什么如果你打印它就不会起作用。

也可以if( $key == "Title" ) echo $value