首页  >  文章  >  后端开发  >  如何在 PHP 中对子数组进行分组并按列格式化值?

如何在 PHP 中对子数组进行分组并按列格式化值?

Linda Hamilton
Linda Hamilton原创
2024-11-02 09:45:02721浏览

How to Group Subarrays and Format Values by Column in PHP?

按列对子数组进行分组,格式化组内其他列的值

在每个子数组由两列组成的给定数组中,任务的方法是按第二列对子数组进行分组并创建一个新数组,其中每个组的第一列的值用逗号连接,第二列的值作为第二个值。

例如,输入数组如下:

$array = [
    ["444", "0081"],
    ["449", "0081"],
    ["451", "0081"],
    ["455", "2100"],
    ["469", "2100"]
];

应转换为:

array (
  0 => 
  array (
    0 => '444,449,451',
    1 => '0081',
  ),
  1 => 
  array (
    0 => '455,469',
    1 => '2100',
  ),
)

解决方案:

实现此目的的简单方法如下:

<code class="php">// Create an empty array to store the grouped data
$groups = [];

// Loop through the input array
foreach ($array as $item) {
    // If the second column value is not yet a key in $groups, create an empty array for it
    if (!array_key_exists($item[1], $groups)) {
        $groups[$item[1]] = [];
    }
    
    // Add the first column value to the array at the corresponding key
    $groups[$item[1]][] = $item[0];
}

// Initialize the new array with the desired structure
$structured = [];

// Loop through the groups
foreach ($groups as $group => $values) {
    // Join the first column values with commas and add the group key as the second column
    $structured[] = [implode(',', $values), $group];
}</code>

该解决方案可以有效地处理转换,从而产生所需的输出。

以上是如何在 PHP 中对子数组进行分组并按列格式化值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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