2013-03-20 53 views
10

Tôi có một mảng trong PHPkiểm tra nhiều giá trị tồn tại php mảng

$permission = array("admin", "moderator", "guest" ); 

và tôi có một mảng

$userRoles = array("admin", "moderator"); 

Tôi đã kiểm tra với in_array nhưng nó không hoạt động với nhiều giá trị.

Làm cách nào tôi có thể kiểm tra ít nhất một giá trị trong $userRoles tồn tại trên $permission mà không lặp?

Xin cảm ơn trước.

Trả lời

26

Sử dụng array_intersect

count(array_intersect($permission, $userRoles)); 
+0

Đây là những gì tôi cần .. – Red

+2

Có không cần phải gọi count() trừ khi bạn thực sự cần đếm. Bạn chỉ có thể sử dụng 'if (array_intersect ($ permission, $ userRoles)) ...'. – orrd

12

Sử dụng array_intersect

array_intersect - Tính toán các giao điểm của mảng

mảng array_intersect (array $array1 , array $array2 [, array $ ... ])

array_intersect() trả về một mảng chứa tất cả các giá trị của mảng1 có mặt trong tất cả các đối số. Lưu ý rằng các phím được giữ nguyên.

Read

+1

+1 cho việc mô tả ... – Red

+2

@ Cảm ơn bạn thân ... tôi chỉ không muốn đưa ra giải pháp mà còn muốn làm cho bạn tìm hiểu. –

Các vấn đề liên quan