2012-11-14 5 views
1

어떻게 확인할 함수를 쓸 수 있습니까? 값이있는 한 이 존재합니다.이 중첩 배열의 키에 있으면 true을 반환합니까? 카테고리 - - 중첩 배열의 일 때문에 인스턴스 중첩 된 배열의 키에 값이 있는지 확인하는 방법은 무엇입니까?

,

$input = array(
    "path" => null, 
    "type" => array (
      "post" => null, 
      "page" => null 
     ), 
    "title" => null, 
    "category" => array(
      "image" => "on" 
    ) 
); 

function validate_array($input = array()) 
{ 

    # Loop the array. 
    foreach($input as $key => $value) 
    { 
     if($value && !is_array($value)) return true; 

     elseif(is_array($value)) 
     { 
      validate_array($value); 
     } 
     elseif($value) 
     { 
      return true; 
     } 
    } 

    # Return the result. 
    return false; 
} 

var_dump(validate_array($input)); // return bool(false) 

true 반환해야 또한

답변

2
# Loop the array. 
foreach($input as $key => $value) 
{ 
    if($value && !is_array($value)) return true; 

    elseif(is_array($value)) 
    { 
     //--->change this line to this<---- 
     if validate_array($value) return true; 
    } 
    elseif($value) 
    { 
     return true; 
    } 
} 

인 값을 가지며, I는하지 그 마지막 elseif가 필요하다고 생각하십시오

+0

도움에 감사드립니다. – laukok

1

테스트를 거쳐 작동해야합니다. 값이 발견되면 true를 반환하고 그렇지 않으면 false를 반환합니다.

function validate_array($input = array()) 
{ 
    # Loop the array. 
    foreach($input as $key => $value) { 
     if (isset($value)) { 
      if (is_array($value)) { 
       if (validate_array($value)) { 
        return true; 
       } 
      } else { 
       return true; 
      } 
     } 
    } 
    # Return the result. 
    return false; 
} 
관련 문제