arrays - laravel 数组 groupBy 特定列值
问题描述
我正在使用 laravel 中的数组,结果如下:
$datesArr = [ {
"day": "monday",
"date": "2021-05-03"
},
{
"day": "monday",
"date": "2021-05-10"
},
{
"day": "monday",
"date": "2021-05-17"
}
]
我想要的是这个:
{
"day": "monday",
"dates" : [
{"date": "2021-05-03"},
{"date": "2021-05-10"},
{"date": "2021-05-17"},
]
}
解决方案
希望对您有所帮助(应全部转换为数组)
public static function buildArrayGroupBy($key, $data , $lockKey = null) {
$result = array();
foreach($data as $val) {
if(array_key_exists($key, $val)){
if(!is_null($lockKey)){
$result[$val[$key]][] = $val[$lockKey];
}else{
$result[$val[$key]][] = $val;
}
}else{
$result[""][] = $val;
}
}
return $result;
}
推荐阅读
- ruby - 如何在不回显的情况下从套接字获取输入?
- reactjs - aws-放大反应。身份验证器组件 - 注销按钮
- amazon-web-services - AWS 上用于 SNS 通知的多区域架构
- spring - Spring JPA Hibernate JpaRepository 级联 oneToMany 删除不起作用
- javascript - 如何从jquery中的循环中一一获取价值?
- vba - 运行时 3001 错误“参数类型错误超出可接受范围或与另一个 vba 冲突”
- javascript - vuejs + firebase 数据推送
- javascript - 使用 Angular 4 上传文件
- html - FontAwesome 从 4 升级到 5 (Tumblr)
- javascript - reactjs 如何处理数组内部的状态变化?(对 Select 元素使用 antd 设计)