以$key=>;的形式循环子阵列$PHP中的值
鉴于此数据结构:以$key=>;的形式循环子阵列$PHP中的值,php,arrays,loops,multidimensional-array,iteration,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) {
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);
}
}
}
}
导致错误:为foreach()提供的参数无效
$arrayas = json_decode($array);
foreach($arrayas $i){
foreach($i as $z){
foreach($z as $key => $value){
print_r($key);
}
}
}
}
试试这个
试试这个请试试这个
$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 ''
}
}
}
}
请试试这个
$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 ''
}
}
}
}
您的数据结构是JSON,而不是PHP数组。你知道吗?您要寻找的是对函数的递归调用:只要函数想在数组中更深一层,它就会调用自己。它看起来像是json数据。首先,您必须使用json_decode函数对该值进行解码。将
foreach($i as$z)
更改为foreach($i['size']as$kye=>$value)
并删除下一个foreach。我认为您还有一个额外的功能,您的数据结构是JSON,而不是PHP数组。你知道吗?您要寻找的是对函数的递归调用:只要函数想在数组中更深一层,它就会调用自己。它看起来像是json数据。首先,您必须使用json_decode函数对该值进行解码。将foreach($i as$z)
更改为foreach($i['size']as$kye=>$value)
并删除下一个foreach。我想你还有一个额外的理由,这个答案缺少教育意义上的解释,这个答案缺少教育意义上的解释。