我收到了以下收藏:
$this->items = collect([$productId => [
'name' => $product->title,
'price' => $product->price,
'is_sale' => $product->is_sale,
'sale_price' => $product->sale_price,
'sale_percent' => $product->sale_percent,
'can_use_promocode' => $product->can_use_promocode,
'qty' => 1,
]);
]);
如何使用密钥搜索项目?在文档(https://laravel.com/docs/5.2/collections)中,我没有看到任何方法
UPD:例如,用户将一个项目添加到购物车($this->items
)。我想检查购物车中物品的存在(需要用钥匙做)。模拟php函数array_key_exists
,但是对于集合。
答案 0 :(得分:5)
使用has()
if($this->items->has('key_name_to_check')){
///your task if exists
}
答案 1 :(得分:1)
你可以这样做:
$this->items->toArray()[$key]
或者您可以使用first()
方法:
$this->items->first(function($i, $k) use($key) {
return $key === $k;
});
<强>更新强>
如果您只是想知道集合中是否存在具有给定密钥的项目,则可以使用offsetExists()
方法。
offsetExists()
方法完全类似于array_key_exists()
,因为它只是这样:
return array_key_exists($key, $this->items);