使用未知密钥搜索数组内的数组

时间:2013-07-14 20:44:00

标签: php multidimensional-array

我正在使用PHP,我有一个多维数组,其中包含有关用户组的数据,该数组的当前设置如下。

$groups = array(
               10 => array("name" => "Admin", (etc)), 
                5 => array("name" => "Standard", (etc))
          );

用户将拥有一个组值,该值将是“Admin”或“Standard”,但由于这些值不是数组中的键值,我不知道我将如何搜索字符串子数组中的值。

我可以更改为基于整数的级别系统,但我更愿意这样做。

所以我的问题是,如何在不知道主键数值的关键值的情况下搜索多维数组的值?

2 个答案:

答案 0 :(得分:2)

试试这个:

$admins = array_filter($groups, function($data) {
    return $data['name'] == 'Admin';
});

答案 1 :(得分:0)

浏览它:)

$admins = array();
$standards = array();
foreach($groups AS $group)
{
    // Search for administrators in the 1-dimension array.
    $admins = array_merge($admins, array_keys($group, "Admin"));

    // Search for standard users in the 1-dimension array.
    $standards = array_merge($standards, array_keys($group, "Standard"));
}

使用1维数组后,您可以使用array_searcharray_keys等功能。您可以在PHP手册中找到有关上述功能的更多信息。