PHP 中本机多维数组的交换形式[重复]

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

只是出于好奇.. 是否可以改变多维数组的形式

Array
(
    [0] => Array
        (
            [id_user] => 79
            [nama] => Sasha
            [id_app] => 908989898
        )

    [1] => Array
        (
            [id_user] => 91
            [nama] => Edward
            [id_app] => 23232323
        )

    [2] => Array
        (
            [id_user] => 50
            [nama] => Jhon
            [id_app] => 1212121212
        )
)

进入

Array
(
    [id_user] => Array
        (
            [0] => 79
            [1] => 91
            [2] => 50
        )

    [nama] => Array
        (
            [0] => Sasha
            [1] => Edward
            [2] => Jhon
        )

    [id_app] => Array
        (
            [0] => 908989898
            [1] => 23232323
            [2] => 1212121212
        )
)

使用本机函数而不是手动循环它? 目前,我使用 PHP 并手动循环它,但如果使用任何其他语言,请通知我。

php arrays multidimensional-array transpose
1个回答
-1
投票

您可以分几个阶段完成。

首先提取值(来自在 PHP 中转置多维数组)。 您还需要键名称,因此假设它们都存在于使用

array_keys()
的第一个数组中。 然后使用
array_combine()
...

将它们放在一起
$values = array_map(null, ...$a);
$keys = array_keys($a[0]);
$newArray = array_combine($keys, $values);
print_r($newArray);
© www.soinside.com 2019 - 2024. All rights reserved.