php - 如何按列值对子数组进行分组?

标签 php arrays grouping

我有以下数组

Array
(
    [0] => Array
        (
            [id] => 96
            [shipping_no] => 212755-1
            [part_no] => reterty
            [description] => tyrfyt
            [packaging_type] => PC
        )

    [1] => Array
        (
            [id] => 96
            [shipping_no] => 212755-1
            [part_no] => dftgtryh
            [description] => dfhgfyh
            [packaging_type] => PC
        )

    [2] => Array
        (
            [id] => 97
            [shipping_no] => 212755-2
            [part_no] => ZeoDark
            [description] => s%c%s%c%s
            [packaging_type] => PC
        )

)

如何按 id 对数组进行分组?是否有任何 native php 函数可用于执行此操作?

虽然这种方法有效,但我想使用 foreach 来执行此操作,因为使用上面的方法我会得到重复的项目,这是我试图避免的?

在上面的例子中,id有2个项目,所以它需要在id

里面

最佳答案

没有原生的,用循环就好了。

$result = array();
foreach ($data as $element) {
    $result[$element['id']][] = $element;
}

关于php - 如何按列值对子数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12706359/

相关文章:

Java数组排序(array1(键),array2(值))

ios - 按日期对 TableView 进行分组和排序

python - 为什么将 groupby 转换为列表时 groupby 分组会发生变化?

php - 适用于 Windows 的 PHP 与适用于 Linux、Mac 等的一样吗?

javascript - PHP 解析 JSON 字符串

php - 如何将 MySql 时间戳列更新为 PHP 上的当前时间戳?

javascript - 在 ES6 中推送和移动数组的快速方法

php - 从字符串的开头删除一个字符串

javascript - 如何在javascript数组中查找值

r - R中多行取一列的最大值