php - 如何将条件数据附加到 JSON 的末尾
问题描述
我正在迭代模型关系
$formatted = [];
foreach($products->childProducts as $childProduct) {
if($childProduct->product_type_id > 1) {
$formatted['associated_products'][] = $this->coreProductInfo($childProduct);
}
}
有一个条件$childProduct->product_type_id
,当 == 1 时,这些产品不应该附加到上面的数组中。相反,当上述数组完全准备好时,应在最后附加所有具有 product_type_id == 1 的产品。即当 product_type_id: 2,3,4... 都已经附加了。
我怎样才能做到这一点,以便所有类型 id 为 1 的产品都应附加到末尾?
预期结果:
[{
"id": 1,
"product_name": "Shirts",
"product_category": "Men Garments",
"product_area": "Western",
"product_region": "Mumbai",
"product_type_id": "2",
"product_uuid": "398jehiu3939e3393"
},
{
"id": 2,
"product_name": "Trousers",
"product_category": "Men Garments",
"product_area": "Eastern",
"product_region": "Mumbai",
"product_type_id": "3",
"product_uuid": "dnnja3989389834343"
},
{
"id": 3,
"product_name": "Jeggings",
"product_category": "Women Garments",
"product_area": "Western",
"product_region": "Delhi",
"product_type_id": "1",
"product_uuid": "ji202039844930300dj"
}
]
解决方案
最佳使用收藏..
$formatted = collect();
foreach($products->childProducts as $childProduct) {
if($childProduct->product_type_id > 1) {
$formatted->prepend($this->coreProductInfo($childProduct));
} else {
$formatted->push($this->coreProductInfo($childProduct));
}
}
$formatted->toArray();
推荐阅读
- python - python - 如何通过格式打印来理解python中的格式打印?
- angular - 角父模板`
` 显示模板两次 - sql - Postgresql 范围下限必须小于或等于范围上限
- c++ - 指向基类的非虚函数的指针
- python - 区分只读函数输入参数和可变参数的 Pythonic 方法
- iis - 编辑 web.config 以传递参数
- php - 在 API 路由 Laravel 8 中获取由 Fortify 认证的用户
- node.js - 按常用 ID 和最新创建日期对集合进行排序
- arduino - Arduino 以太网库如何处理重新连接
- python - 如何获得N个最高的数字?