从 3d 数组的第三级列值创建平面数组

问题描述 投票:0回答:3

我得到这样的查询结果:-

[
    [
        ['id' => 1, 'name' => 'Japan']
    ],
    [
        ['id' => 2, 'name' => 'Nepal']
    ],
];

如何将其转换为

Array
(
  [0] => Japan
  [1] => Nepal
)

用于获取第一个数组的查询是:

SELECT id , name FROM country;

php arrays cakephp
3个回答
0
投票
foreach ($element as $array) {
    $element = $element[0]["name"];
}

或者,

function extractName($element) {
    return $element[0]["name"];
}

$newArray = array_map("extractName", $array);

0
投票

压平,然后调用

array_column()
(演示)

var_export(
    array_column(
        array_merge(...$array),
        'name'
    )
);

如果您的数据在第二级中仅包含单个元素,那么...

array_map()
(演示)

var_export(
    array_map(
        fn($v) => $v[0]['name'],
        $array
    )
);

或者在

foreach()
中进行数组解构:(Demo)

$result = [];
foreach ($array as [['name' => $result[]]]);
var_export($result);

0
投票

在 Cake1.2 的

extract()
类的
Set
方法中使用点表示法。

$newArray = Set::extract($oldArray, '{n}.0.name');

更多这里

© www.soinside.com 2019 - 2024. All rights reserved.