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

PHP如何循环读取嵌套数组并转置输出为指定的行列格式

问题背景

现有嵌套数组

Array ( 
[0] => Array (
     [0] => FL 
     [1] => members 
    ) 
[1] => Array (
     [0] => FK 
     [1] => members
    ) 
[2] => Array (
     [0] => number 
     [1] => number 
    ) 
[3] => Array (
      [0] => FV 
      [1] => mem 
    ) 
)

预期输出效果

第一行输出所有子数组的0号元素,第二行输出所有子数组的1号元素:

FL FK number FV
members members number mem

输出结果需要作为输入字段的取值,和要求的字段格式保持一致。

原有代码问题

原有代码采用嵌套foreach遍历每个子数组的每个元素单独输出<li>,会将8个元素分别输出为8行,不符合两行输出的要求。

修正后代码方案

如果需要保留每个元素对应的key/type/value属性提交,仅将展示文本按行分组,可以用如下写法:

// 分别拼接两行的展示文本和对应的隐藏字段
$row1Label = '';
$row1HiddenFields = '';
$row2Label = '';
$row2HiddenFields = '';

foreach($project_fields as $k => $detail){
    // 组装第一行内容
    $row1Label .= $detail[0].' ';
    $row1HiddenFields .= '
    <input type="hidden" name="project_fields[label][]" value="'.$detail[0].'" />
    <input type="hidden" name="project_fields[key][]" value="'.$custom_details[$k].'" />
    <input type="hidden" name="project_fields[type][]" class="privacy_select" value="'.(isset($project_fields['type'][$k])?$project_fields['type'][$k]:'all').'" />
    <input type="hidden" name="project_fields[value][]" value="'.$project_fields['value'][$k].'" />
    ';

    // 组装第二行内容
    $row2Label .= $detail[1].' ';
    $row2HiddenFields .= '
    <input type="hidden" name="project_fields[label][]" value="'.$detail[1].'" />
    <input type="hidden" name="project_fields[key][]" value="'.$custom_details[$k].'" />
    <input type="hidden" name="project_fields[type][]" class="privacy_select" value="'.(isset($project_fields['type'][$k])?$project_fields['type'][$k]:'all').'" />
    <input type="hidden" name="project_fields[value][]" value="'.$project_fields['value'][$k].'" />
    ';
}

// 输出第一行
echo '<li class="detail_list"> &nbsp; <label>'.trim($row1Label).' &nbsp; </label>'.$row1HiddenFields.'<span class="dashicons dashicons-no-alt"></span></li>';
// 输出第二行
echo '<li class="detail_list"> &nbsp; <label>'.trim($row2Label).' &nbsp; </label>'.$row2HiddenFields.'<span class="dashicons dashicons-no-alt"></span></li>';

如果业务要求整行作为一个字段提交,只需要把implode拼接后的整行内容赋值给隐藏字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:09:02