当我使用laravel的数据库查询构建器时,它返回一个如下数组:
array(20421) {
[0] =>
class stdClass#887 (2) {
public $color =>
int(1)
public $size =>
string(6) "141793"
}
我很乐意使用Laravel系列,但这不是一个集合,因为我没有使用雄辩(并且不想在这种情况下)。我的问题是,如何查看此数组中是否存在color = 3和size = 123的记录?
答案 0 :(得分:1)
您可以将结果包装在Laravel集合中,并像以前一样使用它:
$result = DB::table('...')->get();
$collection = new \Illuminate\Support\Collection($result);
$exists = $collection->contains(function($key, $value){
return $value->color == 3;
});
如果你不得不担心性能,你可能想要使用它而不是 (或者甚至可能改为运行db查询?)
$exists = ! is_null(array_first($array, function($key, $value){
return $value->color == 3;
}));
该集合在内部也使用array_first
(它只是在数组上循环,直到找到匹配项)但是如果没有集合,您应该能够稍微提高性能。但是,我不知道它是否会引人注意。