PHP视图页面展示二维数组(含bom_dt子数组)解决方案咨询
如何展示二维数组中的嵌套子数组
嘿,我来帮你搞定这个嵌套子数组的展示问题!从你给出的数组结构来看,这是典型的主数据+嵌套明细结构,咱们只需要在遍历主数组的同时,嵌套一层循环处理bom_dt里的子数组就行。
先理清楚数组层级
你拿到的数组结构简化后是这样的:
$products = [ [ 'tih_sku' => '10001', 'tih_style' => 'RHH/110/02', 'tih_color' => 'BLACK', 'tih_leather' => 'PERU', 'bom_dt' => [ [ 'mm_spec_fld' => '*-*-*-*-*-NO 5, 22.5 CM-*-*-*-*-*-*-*-...' ] // 可能还有更多子元素 ] ] // 可能还有更多主数组元素 ];
具体实现示例(以PHP为例)
根据不同的展示场景,我给你两种常用的实现方式:
方式1:控制台/文本输出(调试用)
foreach ($products as $product) { // 先输出主数组的核心字段 echo "SKU: {$product['tih_sku']}\n"; echo "Style: {$product['tih_style']}\n"; echo "Color: {$product['tih_color']}\n"; echo "Leather: {$product['tih_leather']}\n"; // 遍历bom_dt子数组,输出明细 echo "BOM明细:\n"; foreach ($product['bom_dt'] as $bomItem) { echo " - 规格信息: {$bomItem['mm_spec_fld']}\n"; // 如果子数组还有其他字段,直接按同样方式输出即可 } echo "-------------------------\n"; }
方式2:HTML页面展示(前端渲染)
如果要在网页上展示,用卡片+列表的形式会更清晰:
foreach ($products as $product) { // 主信息卡片 echo "<div class='product-card'>"; echo "<h3>商品SKU:{$product['tih_sku']}</h3>"; echo "<p>款式:{$product['tih_style']}</p>"; echo "<p>颜色:{$product['tih_color']}</p>"; echo "<p>皮质:{$product['tih_leather']}</p>"; // BOM明细区块 echo "<div class='bom-section'>"; echo "<h4>BOM明细</h4>"; echo "<ul>"; foreach ($product['bom_dt'] as $bomItem) { echo "<li>{$bomItem['mm_spec_fld']}</li>"; } echo "</ul>"; echo "</div>"; echo "</div>"; }
核心思路总结
不管用哪种语言或展示场景,核心逻辑都是:
- 外层循环遍历主数组的每一条数据,先完成主字段的展示
- 针对每条主数据,再用内层循环遍历它的
bom_dt子数组,逐个输出子数组里的字段
如果bom_dt子数组还有更多字段,只需要在第二层循环里继续输出对应的键值对就好啦!
内容的提问来源于stack exchange,提问作者Indranil Banerjee
相关产品推荐
相关产品推荐

