1. 程式人生 > >php中避免迴圈查詢資料庫的方式

php中避免迴圈查詢資料庫的方式

在迴圈中查詢資料不但效率低下而且對資料庫造成很大對壓力。在平常的開發中應該儘量避免這種情況,以下是我以laravel框架的一個例子:

需求:有兩個資料表,一個小組型別表,一個小組表。需查出小組型別下的小組。

當然這裡你可以使用關聯查詢。我只是拿這個舉個例子,程式碼如下:

//查出小組的型別
$groupType = GroupType::select('id','title as name')->get()->toArray();
//取小組型別id的集合陣列
$groupTypeIds = array_map(function ($item){
    return $item['id'];
},$groupType);
//以小組型別分組查出小組型別和小組
$group = Group::select('id','name','typeId')
    ->whereIn('typeId',$groupTypeIds)
    ->get()
    ->groupBy('typeId')
    ->toArray();
//處理一下
foreach ($groupType as $k1 => $v1) {
    $groupType[$k1]['children'] = array_key_exists($v1['id'], $group) ? $group[$v1['id']] : [];
}