$row) { if ($row['search_type'] === 'group') { $groupIDs[] = $row['search_data']['group_id'] ?? NULL; } elseif ($row['search_type'] === 'search') { $searchIDs[] = $row['search_data']['saved_search_id'] ?? NULL; } } $groupIDs = array_filter($groupIDs); $searchIDs = array_filter($searchIDs); if ($groupIDs) { $groupNames = Group::get() ->addWhere('id', 'IN', $groupIDs) ->addSelect('title') ->execute()->indexBy('id')->column('title'); } if ($searchIDs) { $searchNames = SavedSearch::get() ->addWhere('id', 'IN', $searchIDs) ->addSelect('label') ->execute()->indexBy('id')->column('label'); } if ($searchNames || $groupNames) { foreach ($result as $row) { if ($row['search_type'] === 'group' && !empty($groupNames[$row['search_data']['group_id'] ?? '']) ) { $row['search_source'] = $groupNames[$row['search_data']['group_id'] ?? '']; } elseif (($row['search_type'] === 'search') && !empty($searchNames[$row['search_data']['saved_search_id'] ?? '']) ) { $row['search_source'] = $searchNames[$row['search_data']['saved_search_id'] ?? '']; } } } $result[$idx] = $row; } }