php: Array keys case *insensitive* lookup?

前端 未结 12 1954
予麋鹿
予麋鹿 2020-12-25 10:30
$myArray = array (\'SOmeKeyNAme\' => 7);  

I want $myArray[\'somekeyname\'] to return 7.
Is there a way to do this

12条回答
  •  庸人自扰
    2020-12-25 11:04

    I just had same problem and I could not change original array. I use few array functions for it.

    Parameters

    $search = "AbCd";
    $array = array("AbcD"=>"11","Bb"=>"22");
    

    Solution

    $lower_search = strtolower($search);
    $array_of_keys = array_map("strtolower",array_keys($array));
    $idx = array_search($lower_search,$array_of_keys);
    if($idx !== FALSE)
        echo array_values($array)[$idx];
    

    Make it shorter

    if(($idx=array_search(strtolower($search),array_map("strtolower",array_keys($array))))!==FALSE)
        echo array_values($array)[$idx];
    

提交回复
热议问题