我的确有以下系列:
Collection {#265 ▼
#items: array:3 [▼
0 => array:9 [▼
"dueDate" => "2017-10-29"
"date" => "2017-09-29"
"number" => "9030001"
"statuse" => "Reminder"
"currentCode" => "S"
"amount" => 2006.0
"remainingAmount" => 2006.0
"convertedToAccountNumber" => null
"originalCreditorReference" => "0903"
]
1 => array:9 [▼
"dueDate" => "2017-10-29"
"date" => "2017-09-29"
"number" => "9030022"
"statuse" => "Reminder"
"currentCode" => "S"
"amount" => 2294.0
"remainingAmount" => 2294.0
"convertedToAccountNumber" => null
"originalCreditorReference" => "0903"
]
2 => array:9 [▼
"dueDate" => "2017-11-01"
"date" => "2017-10-02"
"number" => "9040023"
"statuse" => "Unpaid"
"currentCode" => "S"
"amount" => 3643.0
"remainingAmount" => 3643.0
"convertedToAccountNumber" => null
"originalCreditorReference" => "0904"
]
]
}
我的问题是除了使用foreach循环进行迭代之外是否有任何方法根据数字键示例获取此集合中的特定数组我希望返回数字等于9040023的数组?
请注意。我是用foreach做的,但是我想使用laravel集合。
答案 0 :(得分:1)
您可以使用where
方法:
$collection->where('number', 9040023)->all();
答案 1 :(得分:0)
您可以使用收集助手方法(也是Eloquent):flatMap
flatMap方法遍历集合并传递每个集合 给定回调的值。回调可以自由修改项目 并返回它,从而形成一个新的修改项目集合。然后, 数组由一个级别展平(使用collapse()集合 法)。
$collection->flatMap(function ($item){
if ($item['number'] === "9040023"){
return $item;
}
});