从数组中读取数据

时间:2012-02-22 15:05:22

标签: php

你好我是新手数组有人可以帮忙吗?我有阵列中的数组。 我如何只从[permissions]数组中获取所有[key]数据。

 Array
(
    [name] => john
    [password] => 150211444
    [permissions] => Array
        (
            [0] => Array
                (
                    [key] => 2
                    [moduleId] => 13
                    [permission] => 1
                )

            [1] => Array
                (
                    [key] => 3
                    [moduleId] => 13
                    [permission] => 1
                )

            [2] => Array
                (
                    [key] => 8
                    [moduleId] => 13
                    [permission] => 1
                )

        )
    )

4 个答案:

答案 0 :(得分:2)

你可以做到

$keys = array();
foreach($arr['permissions'] as $key => $value){
    $keys[] = $value["key"]
}

$keys是一个包含所有[key]

的数组

答案 1 :(得分:1)

继承了我的更正答案 使用常量或变量作为索引名称,首先使用array_key_exists检查array-key(而不是使用isset)

const INDEX_PERMISSIONS = 'permissions';
const INDEX_KEY = 'key';

$keys = array();
if(true === array_key_exists(INDEX_PERMISSIONS, $array)) {
    $inner = $array[INDEX_PERMISSIONS];
        if(null != $inner && is_array($inner)) {
            foreach($inner as $inner_values) {
                if(null !== $inner_values && is_array($inner_values) && array_key_exists(INDEX_KEY, $inner_values)) {
                $keys[] = $inner_values[INDEX_KEY];
            }
        }   
    }

}
print_r($keys);

答案 2 :(得分:0)

假设您知道它始终被称为permissions,并假设您正在创建一个名为$myArray的var来解析:

<?php

 foreach($myArray['permissions'] as $record)
 {


     echo $record['key']; 

 }

?>

答案 3 :(得分:0)

function iter($item, $key) {
    echo $key, $item['permission'], PHP_EOL;
}

array_walk($array['permissions'], 'iter');