首页 > 后端开发 > php教程 > 如何根据一列对 PHP 中的子数组进行分组,并从这些组中的另一列创建逗号分隔值?

如何根据一列对 PHP 中的子数组进行分组,并从这些组中的另一列创建逗号分隔值?

Mary-Kate Olsen
发布: 2024-11-02 15:54:29
原创
523 人浏览过

How can you group subarrays in PHP based on one column and create comma-separated values from another column within those groups?

按一列对子数组进行分组,并从组内的另一列创建逗号分隔值

在 PHP 中,根据一列对子数组进行分组,连接这些组中另一列的值带来了独特的挑战。为了解决这个问题,我们提供了一个详细的解决方案,将给定的数组转换为所需的结构化格式。

提供的示例数组由每个包含两个元素的子数组组成。目标是根据第二个元素(称为“列”)对子数组进行分组,并创建一个新数组,其中每个元素代表一个组。在每个组元素中,第一个元素应该是分组子数组中第一个元素的逗号分隔列表,而第二个元素表示公共列。

为了实现这一点,我们使用分步-步骤方法:

  1. 循环原始数组:首先迭代原始数组中的每个子数组。
  2. 检查组键:对于每个子数组,检查第二个元素(组键)是否存在于名为 $groups 的新数组中。如果没有,则为该组键初始化一个空数组。
  3. 将子数组添加到组:一旦组键存在,将当前子数组的第一个元素添加到相应的组数组中。
  4. 创建结构化数组:处理完原始数组后,循环遍历$groups数组。对于每个组,使用逗号连接其第一个元素的值并将它们存储在一个新数组中。将其与组键结合起来创建所需的结构。

下面提供的 PHP 脚本演示了这种方法:

<code class="php">// Create the input array
$data = array(
    array('444', '0081'),
    array('449', '0081'),
    array('451', '0081'),
    array('455', '2100'),
    array('469', '2100')
);

// Initialize the groups array
$groups = array();

// Loop through the original array
foreach ($data as $item) {
    $key = $item[1];  // Get the group key

    // Check if the group key exists
    if (!array_key_exists($key, $groups)) {
        $groups[$key] = array();
    }

    // Add the subarray to the group
    $groups[$key][] = $item[0];
}

// Create the structured array
$structured = array();
foreach ($groups as $group => $values) {
    $structured[] = array(implode(',', $values), $group);
}

// Display the output
print_r($structured);</code>
登录后复制

此脚本有效地将输入数组转换为新数组具有指定的结构,其中子数组基于公共列进行分组,分组子数组的第一个元素用逗号连接。

以上是如何根据一列对 PHP 中的子数组进行分组,并从这些组中的另一列创建逗号分隔值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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