如何在 PHP 或 Laravel 中检查数组的数组的值中是否有键值对

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)

有什么方法可以更好地做到这一点吗?

Sys*_*all 5

您可以使用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在里面