在php数组中搜索

时间:2014-05-08 21:01:03

标签: php arrays

我有一个数组:

$members = array(
'Group1' => array(
    'user1',
    'user2'
),
'Group2' => array(
    'user3',
    'user4'
),
'Group3' => array(
    'user5'
));

如何搜索特定用户的群组名称?

2 个答案:

答案 0 :(得分:2)

最简单(逻辑上)方式是一个快速的foreach循环,通过in_array()检查以查找您的名字是否在子数组中:

$search = 'user4';

foreach($members as $group_name => $names)
  if(in_array($search, $names))
    echo $search . ' is in ' . $group_name; // user4 is in Group2

示例:https://eval.in/148332

答案 1 :(得分:1)

假设用户可能出现在多个组中:

$groups = array();
foreach ($members as $group_name => $group_members) {
    if (in_array('user4', $group_members)) {
        $groups[] = $group_name;
    }
}

变量$groups将包含匹配的所有组名,但在上面的示例中仅包含“Group2”。