提问人:Eng Sibo Dams 提问时间:4/12/2023 最后编辑:Eng Sibo Dams 更新时间:4/12/2023 访问量:54
如何在 php 中打印嵌套数组 [已关闭]
how to print Nested Array in php [closed]
问:
我需要有关此代码块的帮助
foreach ($summary as $key => $value)
{
if ($key === "Incs") {
foreach ($value as $subkey => $subvalue) {
foreach ($subvalue as $subsubkey => $subsubvalue) {
echo "$subsubkey:\n";
foreach ($subsubvalue as $subsubsubkey => $subsubsubvalue) {
echo $subsubsubvalue;
}
}
}
} else {
echo "$key: $value\n";
}
}
这是通过打印子数组的值来工作的,但我想使用键来访问每个值,这似乎会产生错误。有没有可能实现这一目标?echo $subsubsubvalue;
echo $subsubsubvalue[$subsubsubkey];
foreach ($summary as $key => $value)
{
if ($key === "Incs") {
foreach ($value as $subkey => $subvalue) {
foreach ($subvalue as $subsubkey => $subsubvalue) {
echo "$subsubkey:\n";
foreach ($subsubvalue as $subsubsubkey => $subsubsubvalue) {
echo $subsubsubvalue[$subsubsubkey];
}
}
}
} else {
echo "$key: $value\n";
}
}
这是我正在尝试打印的数组
数组(8) { [“Eid”]=> 字符串(6) “891551” [“Tr1”]=> 字符串(1) “2” [“Tr2”]=> 字符串(1) “0” [“Trh1”]=> 字符串(1) “2” [“Trh2”]=> 字符串(1) “0” [“Tr1OR”]=> 字符串(1) “0” [“Tr2OR”]=> 字符串(1) “0” [“Incs”]= 字符串(1) “0” [“Incs”]= 字符串(1) “0” [“Trh2”]= 字符串(1) “0” [“Tr2OR”]>= 字符串(1) “0” [“Incs”]= 字符串(1) “0” [“Tr1OR”]= 字符串(1) “0” [“Tr2OR”]= 字符串(1) “0” [“Incs”]= 数组(1) { [1]=> 数组(2) { [0]=> 数组(12) { [“最小值”]=> 整数(24) [“纳米”]=> 整数(1) [“辅助”]=> 字符串(5) “57092” [“ID”]=> 字符串(5) “57092” [“Fn”]=> 字符串(7) “Si-heon” [“Ln”]=> 字符串(3) “李” [“Pnum”]=> 整数(0) [“Pn”]=> 字符串(11) “李时宪” [“PnumO”]=> 整数(0) [“IT”]=> 整数(36) [“Sc”]=> 数组(2) { [0]=> 整数(1) [1]=> 整数(0) } [“Sor”]=> 整数(3) } [1]=> 数组(2) { [0]= 整数(0) } [“Sor”]= 整数(3) } [1]= 数组(2) { [0]= 整数(1) [1]= 整数(0) } [“Sor”]= 整数(3) } [1]= 数组(2) { [0]= 整数(1) [1]= 整数(0) } [“Sor”]= 整数(3) } [1]= 数组(2) { [0]= 整数(1) [1]= 整数(0) } [“Sor”]= 整数(3) } [1]= 数组(2) { [0]= 整数(1) [1]= 整数(0) } [“Sor”]= 整数(3) } [9) { [“最小值”]=> 整数(32) [“纳米”]=> 整数(1) [“ID”]=> 字符串(7) “1067481” [“Pnum”]=> 整数(0) [“Pn”]=> 字符串(13) “李东龙” [“PnumO”]=> 整数(0) [“IT”]=> 整数(36) [“Sc”]=>数组(2) { [0]=> int(2) [1]=> int(0) } [“Sor”]=> int(5) } } } }
我想在表格中显示它们 时间 |播放器 |事件
36'. 德布林.目标 45'. 马夏尔.黄牌
答:
当您已经遍历最内层数组的值时,您似乎正在尝试使用键访问该值。为了实现你想要的,你应该直接在最里面的循环中回显键和值。无需使用密钥即可再次访问该值,因为您已经拥有该值$subsubsubvalue。
您也可以使用 $ssk 和 $ssv 作为简写名称。 作为建议,使用递归函数并在第一个 foreach 之后调用它
function rPrintNestedArray($array, $indent = 0) {
foreach ($array as $key => $value) {
if (is_array($value)) {
echo str_repeat(" ", $indent * 4) . "$key:\n";
rPrintNestedArray($value, $indent + 1);
} else {
echo str_repeat(" ", $indent * 4) . "$key: $value\n";
}
}
}
您的代码应如下所示。
foreach ($summary as $key => $value)
{
if ($key === "Incs") {
foreach ($value as $subkey => $subvalue) {
foreach ($subvalue as $subsubkey => $subsubvalue) {
echo "$subsubkey:\n";
foreach ($subsubvalue as $subsubsubkey => $subsubsubvalue) {
echo "$subsubsubkey: $subsubsubvalue\n";
}
}
}
} else {
echo "$key: $value\n";
}
}
评论
var_export($summary);
$subsubsubkey
是 的键,不是 。所以你可以写.$subsubvalue
$subsubsubvalue
echo $subsubvalue[$subsubsubkey];
$subsubsubvalue
$subsubvalue[$subsubsubkey]
$subsubvalue