PHP 多维关联数组按值搜索

问题描述 投票:0回答:1

我有一个数组,我想在其中搜索名称并获取与其关联的数组的键。

示例

假设我们有以下二维数组,其中第二个维度与键相关联:

$leaderboard = array(
    029102938093028 => array(
        'Rank' => '1st',
        'Name' => 'HenryB',
        'Kills' => 10,
        'Deaths' => 4,
        'Headshots' => 5
    ),
    029382912873929 => array(
        'Rank' => '2nd',
        'Name' => 'Will R',
        'Kills' => 6,
        'Deaths' => 4,
        'Headshots' => 1
    ),
    0283928293898303 => array(
        'Rank' => '3rd',
        'Name' => 'Robert M',
        'Kills' => 3,
        'Deaths' => 10,
        'Headshots' => 0
    ),
);

函数调用 search_by_uid("HenryB") (第一个用户的名称)应返回 029102938093028 (数组的键)。

函数调用 search_by_uid("Robert M") 应返回 0283928293898303。

我见过使用多维数组的示例,其中它返回索引,但从不返回关联的索引。如果重复我找不到的问题,请关闭。

php arrays multidimensional-array
1个回答
1
投票
$leaderboards = array(
    '029102938093028' => array(
        'Rank' => '1st',
        'Name' => 'HenryB',
        'Kills' => 10,
        'Deaths' => 4,
        'Headshots' => 5
    ),
    '029382912873929' => array(
        'Rank' => '2nd',
        'Name' => 'Edward B',
        'Kills' => 6,
        'Deaths' => 4,
        'Headshots' => 1
    ),
    '0283928293898303' => array(
        'Rank' => '3rd',
        'Name' => 'Robert M',
        'Kills' => 3,
        'Deaths' => 10,
        'Headshots' => 0
    ),
);

function search_by_uid($array, $name) {

    foreach ($array as $index => $value) {
        if($value["Name"] === $name) {
            return $index;
        }
    }

}

echo search_by_uid($leaderboards, 'Robert M'); //Returns 0283928293898303

使用foreach循环遍历数组中的所有值,直到找到匹配的值,然后返回索引并停止循环。

© www.soinside.com 2019 - 2024. All rights reserved.