在 php 的多维数组中查找所有二级键

2022-08-30 16:59:38

我想生成使用的第二级键的列表。每条记录不包含所有相同的键。但我需要知道所有的钥匙是什么。array_keys() 不起作用,它只返回一个数字列表。

从本质上讲,我正在寻找的输出是:

操作, id, 验证, 基本, Ebase, Ftype, 数量, 类型, 标签, 单位

我有一个遵循以下格式的大型多维数组:

Array
(
    [0] => Array
        (
            [action] => A
            [id] => 1
            [validate] => yes
            [Base] => Array
                (
                    [id] => 2945
                )

            [EBase] => Array
                (
                    [id] => 398
                )

            [Qty] => 1
            [Type] => Array
                (
                    [id] => 12027
                )

            [Label] => asfhjaflksdkfhalsdfasdfasdf
            [Unit] => asdfas
        )

    [1] => Array
        (
            [action] => A
            [id] => 2
            [validate] => yes
            [Base] => Array
                (
                    [id] => 1986
                )

            [FType] => Array
                (
                    [id] => 6
                )

            [Qty] => 1
            [Type] => Array
                (
                    [id] => 13835
                )

            [Label] => asdssdasasdf
            [Unit] => asdger
        )
)

感谢您的帮助!


答案 1
<?php

// Gets a list of all the 2nd-level keys in the array
function getL2Keys($array)
{
    $result = array();
    foreach($array as $sub) {
        $result = array_merge($result, $sub);
    }        
    return array_keys($result);
}

?>

编辑:删除了多余的array_reverse()函数


答案 2
array_keys(call_user_func_array('array_merge', $a));

合并所有值并检索生成的键。