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

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

Linda Hamilton
发布: 2024-11-02 09:45:02
原创
830 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板