PHP:如何在多维数组中查找特定值的完整索引

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

我有这个数组

$languages = array (
    'de' => 
        array (
            'FIRSTNAME' => 'Vorname',
            'SURNAME' => 'Nachname'
        ),
    'en' => 
        array ( 
            'FIRSTNAME' => 'Firstname',
            'SURNAME' => 'Surname'
        )
 );

例如,我试图通过使用$languages的值来获取SURNAME的完整索引(完整键)。

示例:寻找“名字”应返回$languages['en']['FIRSTNAME']

[我尝试将array_searcharray_column结合使用,但实际上我不知道要查找的“列”

array_search($value, array_column($array_to_search_in, 'column'));

[我还找到了一个带有array_walk_recursive的解决方案,但仅通过键比较而不是按值。

array_walk_recursive($languages, function($v, $k, $u) use (&$values){
    if($k == $value) {
        $values[] = $v;
    }
},  $values );

任何帮助一如既往地受到赞赏!谢谢!

php multidimensional-array
1个回答
0
投票

从未与array_walk_recursive一起使用,但是IMO可以应用基本的递归函数。这将遍历数据。如果值与搜索关键字相同,则我们返回一个具有当前关键字的数组。如果父级递归调用接收到一个大小大于0的数组,则我们还要添加当前的父级键以返回结果。

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