메뉴 허가 관리는 일부 역할 기반 권한 관리 시스템을 개발할 때 중요한 부분입니다. 다른 사용자 또는 역할이 다른 메뉴 항목에 액세스 할 수 있도록하기 위해 PHP의 내장 기능 array_diff ()를 사용하여 사용자가 액세스 할 수있는 메뉴 항목을 비교하고 필터링 할 수 있습니다. 이 기사에서는 배열 _diff () 함수를 사용하여 차별화 된 메뉴 허가 관리 시스템을 구현하는 방법을 소개합니다.
PHP에서 array_diff () 함수는 두 개 이상의 배열을 비교하는 데 사용될 수 있으며, 첫 번째 배열에는 존재하지만 다른 배열에 있지 않은 반환 요소. 기본 사용량은 다음과 같습니다.
array_diff(array $array1, array $array2, array ...$arrays): array
이 함수는 $ array1 에서 요소를 포함하는 배열을 반환하지만 $ array2 및 기타 배열로는 그렇지 않습니다.
메뉴 허가 관리에는 각 사용자에게는 일련의 권한 식별자 (일반적으로 메뉴 항목의 ID)가 있으며 시스템은 사용자의 역할에 따라 표시 할 메뉴를 결정합니다. Array_Diff () 함수를 사용하여 관리자의 완전한 메뉴와 일반 사용자 메뉴를 차별화하여 차별화 된 메뉴 권한을 얻을 수 있습니다.
먼저 모든 메뉴 항목이 포함 된 배열과 각 사용자에 대한 배열을 정의합니다. 예를 들어 여러 메뉴 항목이있는 시스템이 있다고 가정하면 각 메뉴 항목에는 고유 한 ID가 있습니다.
// 시스템의 모든 메뉴 항목
$all_menus = [
1 => '첫 페이지',
2 => '사용자 관리',
3 => '제품 관리',
4 => '주문 관리',
5 => '재무 제표',
6 => '시스템 설정'
];
// 관리자의 메뉴 권한
$admin_permissions = [1, 2, 3, 4, 5, 6]; // 관리자는 모든 메뉴에 액세스 할 수 있습니다
// 일반 사용자를위한 메뉴 권한
$user_permissions = [1, 2, 3, 4]; // 일반 사용자는 메뉴에만 액세스 할 수 있습니다
다음으로 Array_Diff ()를 사용하여 관리자 메뉴와 일반 사용자 메뉴의 차별화 된 부분을 가져옵니다. 우리가 반환하려는 메뉴는 일반 사용자가 액세스 권한이없는 메뉴 항목, 즉 관리자가 보유하고있는 메뉴 항목이지만 일반 사용자가없는 메뉴 항목입니다.
// 관리자와 일반 사용자 메뉴의 차이를 얻으십시오
$diff_permissions = array_diff($admin_permissions, $user_permissions);
// 차별화 된 메뉴 권한을 인쇄하십시오
echo "관리자 독점 메뉴 권한:\n";
foreach ($diff_permissions as $menu_id) {
echo $all_menus[$menu_id] . "\n";
}
위의 코드를 통해 관리자가 보유한 메뉴 항목을 출력 할 수 있지만 일반 사용자에게는 액세스 할 수 없습니다. 실행 결과는 다음과 같습니다.
관리자 독점 메뉴 권한:
재무 제표
시스템 설정
실제 권한 관리 시스템에서는 사용자의 권한에 따라 다른 메뉴 링크를 동적으로 표시해야합니다. 메뉴 항목이 특정 URL에 연결되어야한다고 가정하면 메뉴 배열에 URL을 포함시키고 권한을 필터링 할 때 동시에 URL을 필터링 할 수 있습니다.
// 정의 테이프 URL 메뉴 항목
$menus_with_url = [
1 => ['name' => '첫 페이지', 'url' => 'https://www.m66.net/home'],
2 => ['name' => '사용자 관리', 'url' => 'https://www.m66.net/user-management'],
3 => ['name' => '제품 관리', 'url' => 'https://www.m66.net/product-management'],
4 => ['name' => '주문 관리', 'url' => 'https://www.m66.net/order-management'],
5 => ['name' => '재무 제표', 'url' => 'https://www.m66.net/financial-report'],
6 => ['name' => '시스템 설정', 'url' => 'https://www.m66.net/system-settings']
];
// 관리자와 일반 사용자 메뉴의 차이를 얻으십시오
$diff_permissions = array_diff($admin_permissions, $user_permissions);
// 차별화 된 메뉴와 그 인쇄 URL
echo "관리자 독점 메뉴 권한及链接:\n";
foreach ($diff_permissions as $menu_id) {
echo $menus_with_url[$menu_id]['name'] . " - " . $menus_with_url[$menu_id]['url'] . "\n";
}
실행 결과는 다음과 같습니다.
관리자 독점 메뉴 권한及链接:
재무 제표 - https://www.m66.net/financial-report
시스템 설정 - https://www.m66.net/system-settings
위의 방법을 통해 PHP의 array_diff () 함수를 사용하여 차별화 된 메뉴 허가 관리 시스템을 구현합니다. 관리자는 모든 메뉴에 액세스 할 수 있지만 일반 사용자는 공인 메뉴에만 액세스 할 수 있습니다. URL과 결합하여 각 메뉴 항목에 대한 액세스 링크를 제공하여 사용자 경험을 더욱 향상시킬 수 있습니다.
이러한 방식으로, 사용자는 액세스 권한이있는 메뉴를 동적으로 표시 할뿐만 아니라 특정 사용자가 보이는 메뉴 항목을 효과적으로 제어 할 수 있습니다. 실제 요구에 따라이 기능을 확장하고 더 많은 권한 제어 로직을 추가 할 수 있습니다.