PHP - 获取关联数组的关键字

时间:2017-02-21 02:34:56

标签: php arrays

我有一个数组

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

如果我进行数组搜索,例如:

echo array_search("fp", $array);

输出将是" 98"。如果我在另一个数组中查找值,如何在" ml"?中如何获取密钥?我想得到" 97"如果我搜索价值" ml"。

2 个答案:

答案 0 :(得分:0)

我认为多阵列没有这样的功能

如果你想循环尝试:

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;
        }
    }
}

答案 1 :(得分:0)

您可以编写一个替代的递归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);

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