/**
 * 作用:用于判断key是否存在于某个数组,不区分大小写
 * @param1 $key要判断的键名
 * @param2 是否存在于的数组
 * @return bool 存在返回true,不存在返回false
 */
 function array_key_exists_d($key,$arr){
     //判读$arr是否是一个数组
     if(!is_array($arr)||empty($arr))
         return false;
     foreach ($arr as $keys=>$value){
         var_dump($key);
         var_dump($keys);
         echo '<hr/>';
        if($key===$keys){//多维的时候是可以走到这步的,就是无法return ,很奇怪。
         return true;
        } 
        if(is_array($value)){
            var_dump($value);
            array_key_exists_d($key, $value);
        }
      
     }
      return FALSE;
    
 }
自己写的一个递归调用函数用来检测某个值是否在数组的键名里,多维数组就不行,只能检验一维,

解决方案 »

  1.   

            if(is_array($value)){
                var_dump($value);
                return array_key_exists_d($key, $value);
            }
      

  2.   

    function array_key_exists_d($key,$arr){
      //判读$arr是否是一个数组
      if(!is_array($arr)||empty($arr)) return false;
      //判断本维是否有指定键
      if(in_array($key, array_keys($arr))) return true;
      $res = false;
      foreach($arr as $keys=>$value){
        $res |= array_key_exists_d($key, $value);
        //if($res) return true; //或检测到存在就提前结束
      }
      return $res;
    }