我有这个数组 cart_items,并且在映射到数据库存储(如代码中所示)时工作正常。
$cart_items = [
{"id":8,
"cart_id":7,
"product_id":4,
"variation_id":null,
"quantity":1,
"price":30,
"tax":0,
"attrs":null,
"gross_total":30,
"net_total":30,
"tax_total":0,
"product":{
"id":4,
"parent_id":null,
"category_id":1,
"shop_id":1,
"title":"Ladies Blazer",
"unit":"item",
"sale_price":30,
"general_price":35
}
},
{
"id":9,
"cart_id":7,
"product_id":1,
"variation_id":null,
"quantity":2,
"price":11,
"tax":0,
"attrs":null,
"gross_total":22,
"net_total":22,
"tax_total":0,
"product":{
"id":1,
"parent_id":null,
"category_id":2,
"shop_id":2,
"title":"Sport Bottles",
"unit":"item",
"sale_price":11,
"general_price":9
}
}
]
$line_item_params = $cart_items->map(function (CartItem $item) {
$p = [
'product_id' => $item->product_id,
//add filtered shop_id here
'variation_id' => $item->variation_id,
'product_title' => $item->product->title,
'quantity' => $item->quantity,
'price' => $item->price,
'tax' => $item->tax,
'attrs' => $item->attrs,
];
return $p;
})->toArray();
我需要使用 Arr:where() 过滤数组,其中产品 shop_id 是一个特定值。
我尝试使用 if 函数,但代码只是循环返回 true,其中存在 shop_id。
$line_item_params = $cart_items->map(function (CartItem $item) {
if ($item->product['shop_id'] == 1){
$p = [
'product_id' => $item->product_id,
//add filtered shop_id here
//'shop_id' => $shop->id,
'variation_id' => $item->variation_id,
'product_title' => $item->product->title,
'quantity' => $item->quantity,
'price' => $item->price,
'tax' => $item->tax,
'attrs' => $item->attrs,
];
}
return $p;
})->toArray();
我需要过滤产品shop_id为特定值的数组。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我知道这个解决方案并不可取。那就太简单了。您想使用 Laravel 9 组件来做到这一点。无论如何我都会告诉你:
完整示例:https://3v4l.org/19gnD