2014-05-22 2 views
0
$permissions = array( 
    0 => array( 
     "action" => "CREATE", 
     "subject" => "USER" 
    ), 
    1 => array( 
     "action" => "EDIT", 
     "subject" => "USER" 
    ), 
    2 => array( 
     "action" => "DELETE", 
     "subject" => "USER" 
    ), 
    3 => array( 
     "action" => "CREATE", 
     "subject" => "TASK" 
    ), 
); 

"key"와 "value"의 조합이 있는지 확인하려면이 코드를 사용하십시오. 완벽하게 작동합니다.다차원에 두 쌍의 값과 키가 있는지 확인하십시오.

public static function verifyPermissions($array, $key, $val) { 
    foreach ($array as $item){ 
     if ($item[$key] == $val) 
      return true; 
    } 
    return false; 
} 

다음의 코드는 "TRUE"을 반환하지만, 어레이의 동일 행의 어떤 조합 "조치 = EDIT '및'피사체 TASK ="이 존재하지 않는다.

if(Group::verifyPermissions($permissions,"action","EDIT") && Group::verifyPermissions($permissions,"subject","TASK")) 

이 두 옵션을 배열의 같은 행에서 동시에 확인해야합니다. 이 오류를 수정하려면 어떻게해야합니까?

답변

2

당신은 대단히 감사합니다이

public static function verifyTwoPermissions($array, $keys, $values) { 
    foreach ($array as $item){ 
     if ($item[$keys[0]] == $values[0] && $item[$keys[1]] == $values[1]) 
      return true; 
    } 
    return false; 
} 

// verifyTwoPermissions($permissions, array("action", "subject"), array("EDIT", "TASK")) 
+1

처럼 기능을 확장 할 수 있습니다. 매력처럼 작동합니다! 나는 무언가를 생각했지만 끝낼 수 없었다. – IRONLORD

관련 문제