通过存储库,我得到了一个数组结果(每个数组都是一个实体对象),如下所示:
array(
0 => object of type entity,
1 => another object of type entity,
2 => another object of type entity,
)
每个对象都有一些属性,比如 id 和 name 等。 但我想要的是仅使用每个对象的 ID 展平整个数组。
我想要的是这个(仅用 ID 展平数组):
Array
(
[0] => 1
[1] => 6
[2] => 23
)
My solution:
$ids = array_map($transform = function($entity) {
if ($entity instanceof Entity) {
return $entity->getId();
}
}, $myGreatDbResult);
我的解决方案有效,但是否有更好的方法来获得此结果?
最佳答案
一旦获得标识符数组 [0 => ['id' => 1], 1 => ['id' => 6], 2 => ['id' => 26] 。 ..]
只是你必须使用 array_column
从输入数组中的单个列获取值的函数:
$ids = array_column($result, 'id');
Since PHP 5.5.0
输出:
Array
(
[0] => 1
[1] => 6
[2] => 23
...
)
关于php - Symfony Doctrine 数组结果的 Flatten Array Result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660646/