遍历多维数组

时间:2019-09-18 23:05:13

标签: php

我正在使用PHP Decode在PHP中解析JSON文件

$json= file_get_contents ("resultate.json");


$json = json_decode($json, true);

然后我试图遍历结果并显示它们

 foreach($json as $zh){


$name = $zh[0]["VORLAGEN"][0]["JA_PROZENT"];
$JA = $zh[0]["VORLAGEN"][0]["VORLAGE_NAME"];
$kreis = $zh[0]["NAME"];
$kreis1 = $zh[22]["NAME"];




 echo $name;
 echo $JA;
 echo $kreis;
 echo $kreis1;
    ...}

但我只收到一个元素,例如位置0或位置22。我想接收所有结果并将它们显示在列表中。在下面您可以看到数组

Array
(
    [GEBIETE] => Array
        (
            [0] => Array
                (
                    [VORLAGEN] => Array
                        (
                            [0] => Array
                                (
                                    [VORLAGE_NAME] => Kantonale Volksabstimmung über die Vorlage Steuergesetz (StG) (Änderung vom 1. April 2019; Steuervorlage 17)
                                    [JA_STIMMEN_ABSOLUT] => 205
                                    [STIMMBETEILIGUNG] => 28.11
                                    [NEIN_STIMMEN_ABSOLUT] => 183
                                    [VORLAGE_ID] => 2491
                                    [JA_PROZENT] => 52.84
                                )

                        )

                    [NAME] => Aeugst a.A.
                    [WAHLKREIS] => 0
                    [BFS] => 1
                )

            [1] => Array
                (
                    [VORLAGEN] => Array
                        (
                            [0] => Array
                                (
                                    [VORLAGE_NAME] => Kantonale Volksabstimmung über die Vorlage Steuergesetz (StG) (Änderung vom 1. April 2019; Steuervorlage 17)
                                    [JA_STIMMEN_ABSOLUT] => 1000
                                    [STIMMBETEILIGUNG] => 26.15
                                    [NEIN_STIMMEN_ABSOLUT] => 851
                                    [VORLAGE_ID] => 2491
                                    [JA_PROZENT] => 54.02
                                )

                        )

                    [NAME] => Affoltern a.A.
                    [WAHLKREIS] => 0
                    [BFS] => 2
                )

            [2] => Array
                (
                    [VORLAGEN] => Array
                        (
                            [0] => Array
                                (
                                    [VORLAGE_NAME] => Kantonale Volksabstimmung über die Vorlage Steuergesetz (StG) (Änderung vom 1. April 2019; Steuervorlage 17)
                                    [JA_STIMMEN_ABSOLUT] => 661
                                    [STIMMBETEILIGUNG] => 30.98
                                    [NEIN_STIMMEN_ABSOLUT] => 454
                                    [VORLAGE_ID] => 2491
                                    [JA_PROZENT] => 59.28
                                )

                        )

                    [NAME] => Bonstetten
                    [WAHLKREIS] => 0
                    [BFS] => 3
                )

能否请您告诉我如何打印此数组的所有元素?

2 个答案:

答案 0 :(得分:1)

您的json中有GEBIETE层,因此可以将foreach($json as $zh)更改为foreach($json["GEBIETE"] as $zh)

答案 1 :(得分:0)

您可以嵌套多个foreach

$root = $json['GEBIETE'];

foreach ($root as $elem) {
    foreach ($elem as $key => $value) {
        // VORLAGEN is an array of its own so if you want to print the keys you should foreach this value as well
        if(is_array($value)) {
            foreach ($value[0] as $k => $v) {
                echo $k."\t".$v;
            }
        }
        else {
            echo $value;
        }
    }
}