如何在没有任何循环的PHP中获取特定的键数组

时间:2014-04-01 08:05:38

标签: php

我有一个多维数组,问题是我想要特定键的数组值。我已经尝试了对我来说无用的数组的current()和end()。所以请建议我适当的解决方案,以查找特定键的数组值,而无需使用任何循环。我的演示阵列是

Array
(
    [0] => Array
        (
            [EntityType] => Array
                (
                    [Id] => 1
                    [Code] => SUP/13-14/10001
                    [Name] => Supplier
                    [DisplayName] => Supplier
                    [ModuleIdentifier] => 1
                    [IsAdd] => 
                    [IsEdit] => 1
                    [IsDelete] => 1
                )

        )

    [1] => Array
        (
            [EntityType] => Array
                (
                    [Id] => 2
                    [Code] => Emp/13-14-10002
                    [Name] => Employee
                    [DisplayName] => Employee
                    [ModuleIdentifier] => 1
                    [IsAdd] => 
                    [IsEdit] => 
                    [IsDelete] => 
                )

        )

    [2] => Array
        (
            [EntityType] => Array
                (
                    [Id] => 3
                    [Code] => CUS/13-14/10003
                    [Name] => Customer
                    [DisplayName] => Customer
                    [ModuleIdentifier] => 1
                    [IsAdd] => 1
                    [IsEdit] => 
                    [IsDelete] => 
                )

        )

)

我想要名为Customer的数组。那么如何获得这些阵列...... 谢谢!

4 个答案:

答案 0 :(得分:1)

您可以将array_filterarray_map结合使用:

function findElem($array, $val) {
    $result = array_map(
        function ($v) { return $v['EntityType']; },
        array_filter($array, function ($v) use($val) { return $v['EntityType']['Name'] == $val; })
    );
    return count($result)? $result[0] : false;
}

print_r(findElem($array, 'Customer'));

答案 1 :(得分:0)

如果您想访问数组的第n个元素,请尝试使用:

$array[n]

其中n是整数值,所以:

$array[2]

答案 2 :(得分:0)

您可以像这样访问您的数组数据:$array[0]["EntityType"]["ID"]

答案 3 :(得分:0)

此行将为您提供键的所有值"名称"假设您的源数组名为$arr,如果这是您想要的:

$names = array_map( function($item) { return $item["EntityType"]["Name"]; } , $arr );