循环遍历subArray为$ key => PHP中的$ value

时间:2016-04-01 10:08:06

标签: php arrays loops multidimensional-array iteration

给出数据结构

    array(2) {
    [0] array(7) {
        ["model_id"] 218
        ["total"] 10
        ["brand"] "This Brand"
        ["model_name"] "This Name"
        ["picture"] "this pic.jpg"
        ["color"] "Black"
        ["sizes"] array(3) {
            ["4"] "10 %"
            ["5"] "80 %"
            ["6"] "10 %"
        }
    }
    [1] array(7) {
        ["model_id"] 219
        ["total"] 10
        ["brand"] "This Brand"
        ["model_name"] "ThatName"
        ["picture"] "that pic.jpg"
        ["color"] "Black"
        ["sizes"] array(3) {
            ["4"] "20 %"
            ["5"] "50 %"
            ["6"] "30 %"
        }
    }
}

如何将尺寸作为$key => $value进行循环?

到目前为止,我尝试过的工作并没有,比如嵌套循环。

foreach($array as $i){

            foreach($i as $z){

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

                    print_r($key);

                }  
            }
        }
    }

导致错误 Invalid argument supplied for foreach()

3 个答案:

答案 0 :(得分:4)

foreach($array as $i){
    foreach($i['sizes'] as $key => $value){
        echo $key.'->'.$value;
    }       
}

答案 1 :(得分:0)

[2016-02-12 12:08:22,472][INFO ][node                     ] [noeud-0] version[1.6.2], pid[833], build[6220391/2015-07-29T09:24:47Z]
[2016-02-12 12:08:22,473][INFO ][node                     ] [noeud-0] initializing ...
[2016-02-12 12:08:22,609][INFO ][plugins                  ] [noeud-0] loaded [], sites [head]
[2016-02-12 12:08:22,661][INFO ][env                      ] [noeud-0] using [1] data paths, mounts [[/ (/dev/simfs)]], net usable_space [17.2gb], net total_space [20gb], types [simfs]
[2016-02-12 12:08:25,480][INFO ][node                     ] [noeud-0] initialized
[2016-02-12 12:08:25,481][INFO ][node                     ] [noeud-0] starting ...
[2016-02-12 12:08:25,570][INFO ][transport                ] [noeud-0] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/ip.ip.ip.ip:9300]}
[2016-02-12 12:08:25,649][INFO ][discovery                ] [noeud-0] my_cluster_name/123abc
[2016-02-12 12:08:29,436][INFO ][cluster.service          ] [noeud-0] new_master [noeud-0][123abc][java8][inet[/ip.ip.ip.ip:9300]], reason: zen-disco-join (elected_as_master)
[2016-02-12 12:08:29,462][INFO ][http                     ] [noeud-0] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/ip.ip.ip.ip:9200]}
[2016-02-12 12:08:29,463][INFO ][node                     ] [noeud-0] started
[2016-02-12 12:08:29,496][INFO ][gateway                  ] [noeud-0] recovered [1] indices into cluster_state
[2016-02-12 19:12:05,812][WARN ][monitor.jvm              ] [noeud-0] [gc][young][25368][2] duration [1.5s], collections [1]/[2.7s], total [1.5s]/[1.5s], memory [295.2mb]->[29.3mb]/[1.9gb], all_pools {[young] [266.2mb]->[4.9mb]/[266.2mb]}{[survivor] [28.9mb]->[15mb]/[33.2mb]}{[old] [0b]->[9.4mb]/[1.6gb]}

尝试这个

答案 2 :(得分:0)

请试试这个

$decarray = json_decode($array);

foreach($decarray as $keyDec => $valArr ){
    foreach($valArr as $keyOuter => $valOuter){
        if($keyOuter == "sizes"){
            foreach($valOuter as $keyInner => $valInner){
                echo $keyInner.":".$valInner ''
            }  
        }
    }
}
相关问题