簡體   English   中英

在關聯數組中按值搜索並返回其鍵

[英]Search by value in an associative array and return its key

在這樣的數組中搜索的最簡單方法是什么? 例如搜索 5f8ff7a0c49db9d 並返回 5f8ff7bee02fd05

這不起作用:

array_search('5f8ff7a0c49db9d', array_column($arr, 1))


[0] : Array
(
    [0] => Array
        (
            [5f8ff7bedde211e] => 5f8e6a74c1d4efe
        )

    [1] => Array
        (
            [5f8ff7bee02fd05] => 5f8ff7a0c49db9d
        )

    [2] => Array
        (
            [5f8ff7bee2735ce] => 5f8ff7a0c6e8039
        )

)

您可以按如下方式減少整個數組:

$keyedByValue = array_reduce($arr, static function(array $carry, array $item) {
    return array_merge($carry, array_reverse($item));
}, []);

$yourKey = $keyedByValue['5f8ff7a0c49db9d'];

或者你甚至可以使用一個簡單的循環:

$result = null;
$search = '5f8ff7a0c49db9d';

foreach ($arr as $item) {
    $item = array_reverse($item);

    if (isset($item[$search])) {
         $result = $item[$search];
         break;
    }
}

array_search在示例中有這個:

$foundKey = array_search($needle, array_column($array, 'key')); 

這工作正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM