如何将PHP二维数组输出为指定格式的多行语句?
PHP二维数组转指定行格式输出
针对你这种列结构的二维数组(每个键对应同字段的所有值),要转成行对应一组数据的格式,不需要嵌套多层foreach绕弯路,直接按索引遍历即可:
实现代码
// 你的原数组示例 $sourceData = [ 'NUM' => [101, 102, 103], 'NOM' => ['LEPETIT', 'DURAND', 'DUPONT'], 'PRENOM' => ['Lukos', 'Pierre', 'Thiery'] ]; // 获取数据总行数(默认取第一个字段的长度,确保所有字段数据量一致) $totalRows = count(reset($sourceData)); // 遍历每一行索引 for ($i = 0; $i < $totalRows; $i++) { $currentLine = []; // 遍历每个字段,拼接当前行的键值对 foreach ($sourceData as $field => $values) { $currentLine[] = "{$field}:{$values[$i]}"; } // 输出拼接好的一行内容 echo implode(' ', $currentLine) . PHP_EOL; }
说明
- 用
reset($sourceData)快速获取第一个字段的数组,通过count得到总行数,前提是所有字段的子数组长度一致;如果存在长度不一致的情况,可以用min(array_map('count', $sourceData))取最小长度,避免索引越界。 - 外层循环控制行索引,内层循环遍历所有字段,把当前索引对应的字段值和字段名拼接成字符串,存入临时数组。
- 最后用
implode把临时数组的元素用空格连接,输出完整的一行,加上PHP_EOL实现换行。
内容的提问来源于stack exchange,提问作者Hangel
相关产品推荐
相关产品推荐

