현재 위치: > 최신 기사 목록> Array_Diff ()를 사용하여 차별화 된 메뉴 권한 시스템을 작성하십시오

Array_Diff ()를 사용하여 차별화 된 메뉴 권한 시스템을 작성하십시오

M66 2025-06-06

메뉴 허가 관리는 일부 역할 기반 권한 관리 시스템을 개발할 때 중요한 부분입니다. 다른 사용자 또는 역할이 다른 메뉴 항목에 액세스 할 수 있도록하기 위해 PHP의 내장 기능 array_diff ()를 사용하여 사용자가 액세스 할 수있는 메뉴 항목을 비교하고 필터링 할 수 있습니다. 이 기사에서는 배열 _diff () 함수를 사용하여 차별화 된 메뉴 허가 관리 시스템을 구현하는 방법을 소개합니다.

1. array_diff () 함수 소개

PHP에서 array_diff () 함수는 두 개 이상의 배열을 비교하는 데 사용될 수 있으며, 첫 번째 배열에는 존재하지만 다른 배열에 있지 않은 반환 요소. 기본 사용량은 다음과 같습니다.

 array_diff(array $array1, array $array2, array ...$arrays): array

이 함수는 $ array1 에서 요소를 포함하는 배열을 반환하지만 $ array2 및 기타 배열로는 그렇지 않습니다.

2. 권한 관리를위한 기본 아이디어

메뉴 허가 관리에는 각 사용자에게는 일련의 권한 식별자 (일반적으로 메뉴 항목의 ID)가 있으며 시스템은 사용자의 역할에 따라 표시 할 메뉴를 결정합니다. Array_Diff () 함수를 사용하여 관리자의 완전한 메뉴와 일반 사용자 메뉴를 차별화하여 차별화 된 메뉴 권한을 얻을 수 있습니다.

3. 구현 단계

3.1 메뉴 및 사용자 권한을 정의하십시오

먼저 모든 메뉴 항목이 포함 된 배열과 각 사용자에 대한 배열을 정의합니다. 예를 들어 여러 메뉴 항목이있는 시스템이 있다고 가정하면 각 메뉴 항목에는 고유 한 ID가 있습니다.

 // 시스템의 모든 메뉴 항목
$all_menus = [
    1 => '첫 페이지',
    2 => '사용자 관리',
    3 => '제품 관리',
    4 => '주문 관리',
    5 => '재무 제표',
    6 => '시스템 설정'
];

// 관리자의 메뉴 권한
$admin_permissions = [1, 2, 3, 4, 5, 6];  // 관리자는 모든 메뉴에 액세스 할 수 있습니다

// 일반 사용자를위한 메뉴 권한
$user_permissions = [1, 2, 3, 4];  // 일반 사용자는 메뉴에만 액세스 할 수 있습니다

3.2 Array_Diff ()를 사용하여 권한 차이를 계산하십시오

다음으로 Array_Diff ()를 사용하여 관리자 메뉴와 일반 사용자 메뉴의 차별화 된 부분을 가져옵니다. 우리가 반환하려는 메뉴는 일반 사용자가 액세스 권한이없는 메뉴 항목, 즉 관리자가 보유하고있는 메뉴 항목이지만 일반 사용자가없는 메뉴 항목입니다.

 // 관리자와 일반 사용자 메뉴의 차이를 얻으십시오
$diff_permissions = array_diff($admin_permissions, $user_permissions);

// 차별화 된 메뉴 권한을 인쇄하십시오
echo "관리자 독점 메뉴 권한:\n";
foreach ($diff_permissions as $menu_id) {
    echo $all_menus[$menu_id] . "\n";
}

3.3 출력 결과

위의 코드를 통해 관리자가 보유한 메뉴 항목을 출력 할 수 있지만 일반 사용자에게는 액세스 할 수 없습니다. 실행 결과는 다음과 같습니다.

 관리자 독점 메뉴 권한:
재무 제표
시스템 설정

4. URL을 사용하여 권한 제어를 구현하십시오

실제 권한 관리 시스템에서는 사용자의 권한에 따라 다른 메뉴 링크를 동적으로 표시해야합니다. 메뉴 항목이 특정 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

5. 요약

위의 방법을 통해 PHP의 array_diff () 함수를 사용하여 차별화 된 메뉴 허가 관리 시스템을 구현합니다. 관리자는 모든 메뉴에 액세스 할 수 있지만 일반 사용자는 공인 메뉴에만 액세스 할 수 있습니다. URL과 결합하여 각 메뉴 항목에 대한 액세스 링크를 제공하여 사용자 경험을 더욱 향상시킬 수 있습니다.

이러한 방식으로, 사용자는 액세스 권한이있는 메뉴를 동적으로 표시 할뿐만 아니라 특정 사용자가 보이는 메뉴 항목을 효과적으로 제어 할 수 있습니다. 실제 요구에 따라이 기능을 확장하고 더 많은 권한 제어 로직을 추가 할 수 있습니다.