3v4l.org

run code in 300+ PHP versions simultaneously
<?php function array_exclude(array $arr, array $blacklist){ return array_diff_key($arr, array_flip($blacklist)); } function resource($data) { $name = $data["name"]; $prefix = isset($data["prefix"]) ? $data["prefix"] : ""; $except = isset($data["except"]) ? $data["except"] : []; $methods = $this->array_exclude(['create', 'edit', 'delete'], $except); $result = []; foreach($methods as $method){ array_push($result, "$prefix.$name.$method"); } return $result; } function makePermissions($blueprint){ $result = []; foreach ($blueprint as $item){ switch(gettype($item)){ case "string": array_push($result, $item); break; case "array": $result = array_merge($result, $this->resource($item)); break; } } return $result; } print_f(makePermissions([]));

preferences:
40.31 ms | 402 KiB | 5 Q