You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PHP数组输出为每行2列(含4个td)的表格?

解决商品规格每行显示两组的PHP代码问题

我来帮你搞定这个需求!原来的代码每个规格单独占一行(2个<td>),现在要实现每行显示两组规格(4个<td>),核心是先把规格数据整理成键值对,再按每两组为一组来生成表格行,具体实现代码如下:

<?php
$itemSpec = Array (
    'Brand:Adidas',
    'Style:Snowsuits & Bibs',
    'Country:China',
    'Material:Cotton Blend',
    'Sport:Bowling',
    'Sleeve length:Short Sleeve',
    'Theme:Liverpool'
);

// 第一步:将原始数组转换为键值对数组,同时替换指定键名
$specPairs = [];
foreach ($itemSpec as $v) {
    list($key, $value) = explode(':', $v, 2); // 用2限制分割,避免值里有冒号的情况
    if ($key == "Country") {
        $key = "Country/Region of Manufacture";
    }
    $specPairs[] = [
        'label' => $key,
        'value' => $value
    ];
}

// 第二步:将键值对数组按每2个一组拆分
$groupedSpecs = array_chunk($specPairs, 2);

// 第三步:循环生成表格行
foreach ($groupedSpecs as $group) {
    echo '<tr>';
    // 处理第一组规格
    echo "<td>{$group[0]['label']}:</td><td>{$group[0]['value']}</td>";
    // 处理第二组规格(如果存在的话)
    if (isset($group[1])) {
        echo "<td>{$group[1]['label']}:</td><td>{$group[1]['value']}</td>";
    } else {
        // 如果最后一行只有一组,可以补空的td保持表格结构对齐
        echo '<td></td><td></td>';
    }
    echo '</tr>';
}
?>

代码说明:

  • 用explode(':', $v, 2)来分割规格,第二个参数2能避免值里包含冒号时出现分割错误的情况;
  • array_chunk()函数可以轻松把数组按指定数量分组,这里每2个一组正好对应一行的两组规格;
  • 最后一行如果只有一组规格,我们补了两个空的<td>,这样表格的结构会更整齐,如果你不需要空单元格,可以去掉这段补全的代码。

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:29:06