使用 PHP 按列值对二维数组进行高效分组
按特定列值对多维数组进行分组可以增强数据组织和检索。虽然没有用于此任务的原生 PHP 函数,但使用 foreach 循环的自定义方法可以有效地实现此目标。
问题:
考虑以下代表的 2D 数组数据行:
$array = [ [ 'id' => 96, 'shipping_no' => '212755-1', 'part_no' => 'reterty', 'description' => 'tyrfyt', 'packaging_type' => 'PC', ], [ 'id' => 96, 'shipping_no' => '212755-1', 'part_no' => 'dftgtryh', 'description' => 'dfhgfyh', 'packaging_type' => 'PC', ], [ 'id' => 97, 'shipping_no' => '212755-2', 'part_no' => 'ZeoDark', 'description' => 's%c%s%c%s', 'packaging_type' => 'PC', ], ];
目标是按 'id' 列对数组元素进行分组并形成子数组
解决方案:
使用 foreach 循环:
$result = []; foreach ($data as $element) { $result[$element['id']][] = $element; }
解释:
foreach 循环遍历 $data 数组中的每个元素。对于每个元素,它检查“id”列并将其用作 $result 数组中的键。如果键(id)已经存在,则将新元素追加到相应的子数组中。
输出:
$result 数组将根据 ' 进行分组id' 列,结果为:
$result = [ 96 => [ [ 'id' => 96, 'shipping_no' => '212755-1', 'part_no' => 'reterty', 'description' => 'tyrfyt', 'packaging_type' => 'PC', ], [ 'id' => 96, 'shipping_no' => '212755-1', 'part_no' => 'dftgtryh', 'description' => 'dfhgfyh', 'packaging_type' => 'PC', ], ], 97 => [ [ 'id' => 97, 'shipping_no' => '212755-2', 'part_no' => 'ZeoDark', 'description' => 's%c%s%c%s', 'packaging_type' => 'PC', ], ], ];
此方法提供了一种灵活高效的方法来按指定的方式对 2D 数组进行分组列值,实现高效的数据提取和操作。
以上是如何按列值有效地对 2D PHP 数组进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!