Доктрина: вернуться в одно измерение

У меня есть отношение ManyToOne между двумя объектами ArticleLine и Artcile:

<?php
//ArticleLine.php
ManyToOne(targetEntity = "Gain\Bundle\ArticleBundle\Entity\Article")

Я пытаюсь получить список идентификаторов на основе каких-то условий ..
Это мой запрос к доктрине dql:

SELECT tl.id FROM AppBundle\Entity\ArticleLine tl INNER JOIN tl.turnover t INNER JOIN tl.article a WHERE t.supplier = :supplier AND t.year = :year AND tl.significant = false ORDER BY tl.id asc


После вызова $qb->getQuery()->getResult() получаю вот такой результат массивов ...

array:138 [
  0 => array:1 [
    "id" => 64624
  ]
  1 => array:1 [
    "id" => 64630
  ]
  2 => array:1 [
    "id" => 64631
  ]
  3 => array:1 [
    "id" => 64632
  ]
  4 => array:1 [
    "id" => 64633
  ]
  5 => array:1 [
    "id" => 64637
  ]
  6 => array:1 [
    "id" => 64638

Любая идея, как я могу преобразовать свой результат в одномерный массив или играть в режиме гидратации, чтобы получить что-то вроде этого


[64624, 64630, 64631, 64633 ... ] или же [0 => 64624, 1 => 64630, 2 => 64631 ...]

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
305
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете преобразовать свой результат с помощью функции array_map:

$result = $qb->getQuery()->getResult()
$result = array_map('current', $result);

Вы также можете использовать функцию array_column:

$result = array_column($result, "id")

Если существует решение с режимом гидратации. Я бы хотел знать :)

Можете ли вы объяснить историю array_map и текущего

famas23 08.06.2018 13:45

Первый аргумент array_map - это функция обратного вызова (или имя функции), и есть функция Текущий, которая получает текущий элемент в массиве.

G1.3 08.06.2018 13:50

Другие вопросы по теме