В моем репозитории у меня есть следующий метод:
/**
* List and Seatch for existing emails
* @param Integer $page The pagination page
* @param Integet $limit The page limit
* @return String[]
*/
public function getEmailListInOrderToSendEmail()
{
$em=$this->getEntityManager();
$queryBuilder = $em->createQueryBuilder();
$queryBuilder->select('c.email')->from(ContactEmail::class,'c');
$value=$queryBuilder->getQuery()->getScalarResult();
if(empty($value)){
return [];
}
return $value;
}
Пользовательский пример возвращаемого типа, который я хочу получить, является следующим:
["ddesyllas@ gmail.com "," contact@papaioannou.com "]
Но вместо этого возвращается следующий результат:
[['email' =>" ddesyllas @gmail.com "], [" name "=>" contact@papaioannou.com "]]
Поэтому наивный подход состоит в том, чтобы перебрать результаты с помощью цикла и развернуть его:
$newResults=[];
foreach($results as $result){
$newResults[]=$result['email'];
}
Но мне это кажется неэффективным.Есть ли способ отформатировать возвращенные данные запроса по пути, который выбирается без необходимости делать цикл?
Причина, по которой я спрашиваю, состоит в том, что набор результатов может стать довольно большим и выполнять итерации по большому массивукажется немного медленным (например, в пакетном процессе через cli с использованием команды symfony).