Вы можете выполнить фильтрацию на основе строки, используя функцию array_filter() в сочетании с функцией in_array().
Ваш код может выглядеть следующим образом:
```php
$permissions = [
"group.phantom",
"group.god",
"group.imperator",
"group.general",
"group.hermit",
"group.soldier"
];
$inputData = [
[
"permission" => "group.default"
],
[
"permission" => "group.phantom"
],
[
"permission" => "group.general"
]
];
// Функция для проверки наличия значения в массиве permissions
$filterFunction = function ($value) use ($permissions) {
return in_array($value["permission"], $permissions);
};
// Фильтрация входных данных
$filteredData = array_filter($inputData, $filterFunction);
// Получение старшего значения permission
$highestPermission = array_reduce($filteredData, function ($carry, $item) {
return ($carry == null || strcmp($item["permission"], $carry) < 0) ? $item["permission"] : $carry;
}, null);
echo $highestPermission; // group.god
```
В этом примере функция array_filter() используется для фильтрации входных данных, оставляя только те элементы, у которых значение "permission" присутствует в массиве $permissions. Затем функция array_reduce() используется для нахождения "старшего" значения "permission" из отфильтрованных данных.