在多维数组中查找值

ice*_*eea 0 php

我有一个多维数组:

array (
    array (
        "username"        => "foo",
        "favoriteGame"    => "Mario"
    )
    array (
        "username"        => "bar",
        "favoriteGame"    => "Mario"
    )
    array (
        "username"        => "xyz",
        "favoriteGame"    => "Zelda"
    )
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能以最简单的方式获得喜欢玩马里奥的人的用户名?

编辑: 我的错:忘记明确提到"favoriteGame"值是动态的,我不知道它是提前的.

我的解决方案

foreach($users as $key => $value)
{
    if(!isset($$value['favoriteGame']))
    {
        $$value['favoriteGame'] = array();
    }
    array_push($$value['favoriteGame'], $value['username']);
}
Run Code Online (Sandbox Code Playgroud)

迭代每个子数组并找到它的favoriteGame值.如果还没有数组$ favoriteGame创建它.将实际子数组的username-value推送到$ favoriteGame数组.

感谢您的回复,我无法正确地回答这个问题.

tig*_*ang 6

function getUsernamesByFavoriteGame($data, $game) {
    $usernames = array();
    foreach($data as $arr) {
        if ($arr['favoriteGame'] == $game) {
            $usernames[] = $arr['username'];
        }
    }
    return $usernames;
}
Run Code Online (Sandbox Code Playgroud)


Aur*_*kus 5

 $usernames = array();
 foreach($array as $key => $value) {
     if ($value['favoriteGame'] == 'Mario') {
         $usernames[] = $value['username'];
     }
 }
Run Code Online (Sandbox Code Playgroud)