【问题标题】:PHP Multidimenstional Associative Array Search by ValuePHP 多维关联数组按值搜索
【发布时间】:2021-03-24 19:03:15
【问题描述】:

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

示例

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

$leaderboard = 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
    ),
);

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

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

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

【问题讨论】:

  • 罗伯特 M 之后缺少撇号
  • @RAZERZ 谢谢修复。
  • @Edbtvplays foreach ($leaderboard as $key => $item) { if ($item['Name'] === 'HenryB') { return $key; } } return false;
  • @Edbtvplays o,你已经有了答案,就像我的评论一样)
  • 欢迎来到 Stack Overflow!

标签: php arrays multidimensional-array


【解决方案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循环遍历数组中的所有值,直到找到匹配的值,然后返回索引并停止循环。

【讨论】:

    猜你喜欢
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2020-04-16
    • 2012-09-04
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多