php - php如何按id分组
问题描述
我是 PHP 新手。我正在处理数组数据结构。目前,我得到了两个结果,它们的 ID 相同,但细节不同。我需要根据 ID 组合详细信息。
这是我的数组结果
array:2 [
0 => array:13 [
"id" => "1"
"date" => "01-02-2019"
"order" => array:1 [
0 => array:2 [
"code" => "F001"
"name" => "fish"
]
]
]
1 => array:13 [
"id" => "1"
"date" => "01-02-2019"
"order" => array:1 [
0 => array:2 [
"code" => "F002"
"name" => "chicken"
]
]
]
]
这是我的预期结果
array:1 [
0 => array:13 [
"id" => "1"
"date" => "01-02-2019"
"order" => array:2 [
0 => array:2 [
"code" => "F001"
"name" => "fish"
]
1 => array:2 [
"code" => "F002"
"name" => "chicken"
]
]
]
]
如果有相同的ID,我正在尝试插入订单数组
这是我的代码
public function order($value)
{
$group_id = [];
$groupItem = [];
foreach ($value as $item) {
$item['date'] = date('Y-m-d',strtotime($item['date']));
$groupItem = $item['order'][] = [
'id' => $item['id'],
'name' => $item['name'],
];
$group_id[$item['id']][]= $groupItem;
}
}
结果
array:1 [
"1" => array:1 [
0 => array:2 [
"code" => "F001"
"name" => "fish"
]
1 => array:2 [
"code" => "F002"
"name" => "chicken"
]
]
]
如您所见,我将order
日期和 id 分组但丢失了。
解决方案
分配适当的数据。尝试 -
foreach ($value as $item) {
$date = date('Y-m-d',strtotime($item['date']));
$id = $item['id'];
$group_id[$id]['id'] = $id;
$group_id[$id]['date'] = $date;
$group_id[$id]['order'][] = [
'id' => $item['id'],
'name' => $item['name'],
];
}
推荐阅读
- python - 从 cox.print_summary() 中提取数据摘要
- jmeter - 有没有办法用 JMeter 来定义:numberOfThreadsPerMinute、threadIncreaseTimeUnit 和 threadIncreaseNumberPerTimeUnit
- vba - VBA - 如何访问“TextFrame2”属性?
- apache-kafka - Zookeeper stat 命令混乱
- php - PHP Async Curl POST 在 500 毫秒内减慢了我的代码速度
- php - 如何使用 laravel 将数组值插入数据库
- java - 我怎样才能让球在被棍子击中后到达它应该去的地方?
- angular - 如何从材料表中获取选中的复选框行值
- spacy - spacy 中的灾难性遗忘:排练功能
- mysql - 如何仅显示我是成员的加入组 (php)?