Deb*_*sad 1 php arrays laravel
我有以下数组。我想知道数组的任何值是否包含键值对"RoleCode" => "Admin"。
[
0 => [
"RoleCode" => "Admin"
"RoleName" => "Administrator"
]
1 => [
"RoleCode" => "PM"
"RoleName" => "ProjectManager"
]
2 => [
"RoleCode" => "ScheduleUser"
"RoleName" => "Schedule User"
]
]
Run Code Online (Sandbox Code Playgroud)
我可以编写很长的代码来查找它,如下所示:
$isAdmin = false;
foreach ($user['Roles'] as $role) {
if ($role['RoleCode'] == 'Admin') {
$isAdmin = true;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以更好地做到这一点吗?
您可以使用array_column()和in_array():
$isAdmin = in_array('Admin', array_column($user['Roles'], 'RoleCode')) ;
Run Code Online (Sandbox Code Playgroud)
array_column()'RoleCode'将返回一个包含键中所有值的数组in_array()将检查是否Admin在里面