2 回答

TA貢獻2011條經(jīng)驗 獲得超2個贊
再次閱讀文章后,我意識到,有是在那里嘗試已經(jīng)(對不起,我先前的評論說,否則......)。關(guān)于如何解決數(shù)據(jù)重組問題,我的建議如下:
$newarr=array();
for($i = 0; $i < count($array); $i++){
$obj = json_decode($array[$i]);
$newarr[$obj->GROUP][$obj->BREED][]=$obj->NAME;
}
foreach ($newarr as $group => $breeds) {
echo "<h1>$group</h1>\n";
foreach ($breeds as $breed => $vehicles)
echo "<p><b>$breed</b><br>\n".join("<br>\n",$vehicles)."</p>\n";
}
您可以在此處找到工作演示:https : //rextester.com/OYD48391

TA貢獻1818條經(jīng)驗 獲得超3個贊
您需要先重構(gòu)您的數(shù)據(jù),然后再渲染它們,如下所示
// we will restructure the array to look like the following
[
"Vehicle" => [
"Self-Propelled" => [
0 => "Infantry fighting.",
1 => "Cavalry fighting",
2 => "Armored personnel",
3 => "aerial tramway",
4 => "baby carriage",
5 => "delivery truck",
6 => "Nissan LEAF.",
7 => "Earth mover",
],
"Electric" => [
0 => "Audi A3 Sportback.",
1 => "BMW i3",
2 => "Chevrolet Bolt",
3 => "Chrysler Pacifica PHEV.",
4 => "Ford Fusion Energi.",
5 => "Hyundai IONIQ Electric.",
6 => "Mercedes GLE 550e.",
7 => "Ford F",
8 => "Mitsubishi/Nissan",
]
],
"Passageiro" => [
"Self-Propelled" => [
0 => "Armored reconnaissance",
]
],
]
// first restructure the array
$restructuredArray = [];
foreach ($array as $jsonData) {
$data = json_decode($jsonData);
$restructuredArray[$data->GROUP] = $restructuredArray[$data->GROUP] ?? [];
$restructuredArray[$data->GROUP][$data->BREED] = $restructuredArray[$data->GROUP][$data->BREED] ?? [];
$restructuredArray[$data->GROUP][$data->BREED][] = $data->NAME;
}
// second rendering the restructured array
foreach ($restructuredArray as $group => $breeds) {
echo "<h1>{$group}</h1>";
foreach($breeds as $breed => $names) {
echo "<h3>{$breed}</h3>";
foreach($names as $name) {
echo "<p>{$name}</p>";
}
}
}
建議 如果您可以控制數(shù)據(jù)庫,最好以更好的格式或結(jié)構(gòu)保存數(shù)據(jù),在您的情況下,您可以使用 SQL(如 MySQL 使用關(guān)系)或 NoSQL(基于文檔的數(shù)據(jù)庫,如 MongoDB),兩者都適合為您的需要。
- 2 回答
- 0 關(guān)注
- 220 瀏覽
添加回答
舉報