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