【问题标题】:Foreach loop Multidimensional ArrayForeach 循环多维数组
【发布时间】:2015-06-02 22:27:16
【问题描述】:

我正在使用从第三方来源接收的多维数组,因此无法更改其布局。它适用于大学,我想循环模块名称而不是 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
                                    )

                            )

                    )

            )

    )

提前致谢:)

【问题讨论】:

  • 不想id的话直接指向Title

标签: php arrays loops multidimensional-array foreach


【解决方案1】:

你可以直接指向它。

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,因为它已经能够获取所有这些值。

【讨论】:

  • 嗨,Ghost,谢谢你,我知道它们必须是一种更简单的方法,而你的位置是一个 SimpleXml 对象。
  • @Donz 我很高兴这有帮助
【解决方案2】:

您不想尝试$thirdvalues["Title"] 对吗?看起来一团糟,但我不明白为什么要打印它就行不通。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2011-08-30
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 2010-10-24
    相关资源
    最近更新 更多