簡體   English   中英

PHP-獲取關聯數組的鍵

[英]PHP - Get key of Associative Array

我有一個數組

Array(
[32] => ki
[97] => Array
    (
        [0] => l$
        [1] => ml
        [2] => 8e
    )
[98] => fp
[99] => @w
[100] => lf 
)

如果我做數組搜索例如:

echo array_search("fp", $array);

輸出將為“ 98”。 如果即時通訊正在另一個數組(例如“ ml”)中尋找值,該如何獲取密鑰? 如果我搜索值“ ml”,我想得到“ 97”。

我認為多數組沒有這種功能

如果要循環執行,請嘗試:

foreach($array as $key => $value)
{
    if(is_array($value))
    {
        $subarray = $value;

        foreach($subarray as $subvalue)
        {
            if($subvalue == 'ml')
            {
                echo $key;
                break 2;
            }
        }
    }
    else
    {
        if($value == 'ml')
        {
            echo $key;
            break;
        }
    }
}

您可以編寫一個替代的遞歸array_search函數,如下所示:

function recursive_array_search($needle, $haystack, $parent_key = null) {
    foreach($haystack as $key => $value) {
        $current_key = $parent_key ? $parent_key : $key;
        if($needle === $value || (is_array($value) && recursive_array_search($needle, $value, $current_key) !== false)) {
            return $current_key;
        }
    }
    return false;
}

並像echo recursive_array_search("ml", $array);一樣echo recursive_array_search("ml", $array);

基於http://php.net/manual/en/function.array-search.php#91365

暫無
暫無

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

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