У меня есть отношение 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 ...]




Вы можете преобразовать свой результат с помощью функции array_map:
$result = $qb->getQuery()->getResult()
$result = array_map('current', $result);
Вы также можете использовать функцию array_column:
$result = array_column($result, "id")
Если существует решение с режимом гидратации. Я бы хотел знать :)
Первый аргумент array_map - это функция обратного вызова (или имя функции), и есть функция Текущий, которая получает текущий элемент в массиве.
Можете ли вы объяснить историю array_map и текущего