首页  >  文章  >  后端开发  >  如何转置二维数组并将其转换为逗号分隔的列、管道分隔的行字符串?

如何转置二维数组并将其转换为逗号分隔的列、管道分隔的行字符串?

Susan Sarandon
Susan Sarandon原创
2024-10-28 12:49:02625浏览

How to Transpose a 2D Array and Convert it to a Comma-Separated Column, Pipe-Separated Row String?

转置二维数组并将其转换为具有逗号分隔列和管道分隔行的字符串

给定一个多维数组,转置它将列转换为行。此外,生成转置数组的字符串表示形式,其中每行由竖线字符 ('|') 分隔,每行中的元素由逗号 (,) 分隔。

示例:

考虑以下二维数组:

01 03 02 15
05 04 06 10
07 09 08 11
12 14 13 16

所需输出:

01,05,07,12|03,04,09,14|02,06,08,13|15,10,11,16

解决方案:

此任务可以分两步完成:

  1. 转置数组:

    • 创建一个新数组其中原始行变为列,反之亦然。
  2. 创建字符串表示形式:

    • 迭代每行
    • 用逗号 (,) 连接每行的元素。
    • 用竖线字符 (|) 连接各行。

JavaScript 实现:

<code class="javascript">// Transpose the array
const transposedArray = originalArray.map((row, i) => row.map((el, j) => originalArray[j][i]));

// Create the string representation
const result = transposedArray.map(row => row.join(",")).join("|");</code>

PHP 实现:

<code class="php">// Transpose the array
$transposedArray = array();
foreach ($originalArray as $row) {
  foreach ($row as $key => $value) {
    $transposedArray[$key][] = $value;
  }
}

// Create the string representation
$result = array_map(function($row) { return implode(",", $row); }, $transposedArray);
$result = implode("|", $result);</code>

以上是如何转置二维数组并将其转换为逗号分隔的列、管道分隔的行字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn