如何从 PHP 中的多维数组回显数据?
How to echo data from a Multi-Dimensional Array in PHP?
我需要像这样echo/return将数据传到页面:
目录: 251-2010
规格: 20g
长度:10cm
尖端尺寸: 10mm
这是名为 $vararray 的数组。它包含几个不同的产品变体数据数组:
array(3) {
[0]=> array(1) {
["251-2010"]=> array(1) {
["Gauge"]=> string(3) "20g"
}
}
[1]=> array(1) {
["251-2010"]=> array(1) {
["Length"]=> string(4) "10cm"
}
}
[2]=> array(1) {
["251-2010"]=> array(1) {
["Tip Size"]=> string(4) "10mm"
}
}
}
array(3) {
[0]=> array(1) {
["600-VR1620"]=> array(1) {
["Chart Type"]=> string(14) "Shirt"
}
}
[1]=> array(1) {
["600-VR1152"]=> array(1) {
["Chart Type"]=> string(13) "Trousers"
}
}
[2]=> array(1) {
["600-VR16211"]=> array(1) {
["Chart Type"]=> string(13) "Socks"
}
}
}
我需要这样的东西:
$vargroup = array();
foreach ($vararray as $vitems) {
$varmeta = array_values($vararray);
foreach ($varmeta as $metain => $vardetails) {
vargroup[$metain]['catalog'] = $vardetails['Catalog'];
vargroup[$metain]['gauge'] = $vardetails['Gauge'];
vargroup[$metain]['length'] = $vardetails['Length'];
vargroup[$metain]['tipsize'] = $vardetails['Tip Size'];
}
$vars_profile = '';
foreach ($vargroup as $vgrp) {
$vars_profile .= $vgrp[catalog] . '<br>' . $vgrp[gauge] . '<br>' . $vgrp[length] . '<br>' . $vgrp[tipsize];
}
}
return $vars_profile;
我很难把它做好。这是我需要它的外观:
目录: 251-2010
规格: 20g
长度:10cm
尖端尺寸: 10mm
目录: 600-VR1620
图表类型: 衬衫
目录: 600-VR1152
图表类型:裤子
目录: 600-VR16211
图表类型:袜子
您无法从同一个 $vardetails
元素中获取所有 Catalog
、Gauge
、Length
和 Tip Size
,它们位于数组的不同元素。您需要深入每个元素以获取其键和值。
您可以在处理原始数组的循环中创建 $vars_profile
,不需要 $vargroup
。
要仅显示一次类别,请使用变量保存最后一个值。仅在该字段发生变化时输出类别行。
$vars_profile = '';
$last_metain = null;
foreach ($vararray as $vitem) {
foreach ($vitem as $metain => $vardetails) {
if ($metain != $last_metain) {
$vars_profile .= "<p>\nCatalog: $metain<br>\n";
$last_metain = $metain;
}
foreach ($vardetails as $key => $value) {
$vars_profile .= "$key: $value<br>\n";
}
}
}
return $vars_profile;
我需要像这样echo/return将数据传到页面:
目录: 251-2010
规格: 20g
长度:10cm
尖端尺寸: 10mm
这是名为 $vararray 的数组。它包含几个不同的产品变体数据数组:
array(3) {
[0]=> array(1) {
["251-2010"]=> array(1) {
["Gauge"]=> string(3) "20g"
}
}
[1]=> array(1) {
["251-2010"]=> array(1) {
["Length"]=> string(4) "10cm"
}
}
[2]=> array(1) {
["251-2010"]=> array(1) {
["Tip Size"]=> string(4) "10mm"
}
}
}
array(3) {
[0]=> array(1) {
["600-VR1620"]=> array(1) {
["Chart Type"]=> string(14) "Shirt"
}
}
[1]=> array(1) {
["600-VR1152"]=> array(1) {
["Chart Type"]=> string(13) "Trousers"
}
}
[2]=> array(1) {
["600-VR16211"]=> array(1) {
["Chart Type"]=> string(13) "Socks"
}
}
}
我需要这样的东西:
$vargroup = array();
foreach ($vararray as $vitems) {
$varmeta = array_values($vararray);
foreach ($varmeta as $metain => $vardetails) {
vargroup[$metain]['catalog'] = $vardetails['Catalog'];
vargroup[$metain]['gauge'] = $vardetails['Gauge'];
vargroup[$metain]['length'] = $vardetails['Length'];
vargroup[$metain]['tipsize'] = $vardetails['Tip Size'];
}
$vars_profile = '';
foreach ($vargroup as $vgrp) {
$vars_profile .= $vgrp[catalog] . '<br>' . $vgrp[gauge] . '<br>' . $vgrp[length] . '<br>' . $vgrp[tipsize];
}
}
return $vars_profile;
我很难把它做好。这是我需要它的外观:
目录: 251-2010
规格: 20g
长度:10cm
尖端尺寸: 10mm
目录: 600-VR1620
图表类型: 衬衫
目录: 600-VR1152
图表类型:裤子
目录: 600-VR16211
图表类型:袜子
您无法从同一个 $vardetails
元素中获取所有 Catalog
、Gauge
、Length
和 Tip Size
,它们位于数组的不同元素。您需要深入每个元素以获取其键和值。
您可以在处理原始数组的循环中创建 $vars_profile
,不需要 $vargroup
。
要仅显示一次类别,请使用变量保存最后一个值。仅在该字段发生变化时输出类别行。
$vars_profile = '';
$last_metain = null;
foreach ($vararray as $vitem) {
foreach ($vitem as $metain => $vardetails) {
if ($metain != $last_metain) {
$vars_profile .= "<p>\nCatalog: $metain<br>\n";
$last_metain = $metain;
}
foreach ($vardetails as $key => $value) {
$vars_profile .= "$key: $value<br>\n";
}
}
}
return $vars_profile;