循环遍历嵌套数组php和前缀值
读取数组中的所有前缀值。如果slug value是modules,则结果将是api/v1/tenants/modules/{id},相反,如果slug value fetch,则结果将是api/v1/tenants/fetch/{id}循环遍历嵌套数组php和前缀值,php,arrays,json,Php,Arrays,Json,读取数组中的所有前缀值。如果slug value是modules,则结果将是api/v1/tenants/modules/{id},相反,如果slug value fetch,则结果将是api/v1/tenants/fetch/{id} "slug" => "api", "children" => [ "prefix" => "v1", "slug" => "v1",
"slug" => "api",
"children" => [
"prefix" => "v1",
"slug" => "v1",
"children" => [
"prefix" => "tenants",
"slug" => "tenants",
"children" => [
[
"prefix" => "fetch/{id}",
"slug" => "fetch",
],
[
"prefix" => "modules/{id}",
"slug" => "modules",
]
],
],
],
您可以使用递归遍历数组
$res = [];
// & so that it keeps data of $res in every loop
array_walk_recursive($arr, function ($item, $key) use (&$res) {
if ($key == 'prefix') {
$res[] = $item; // fetching only prefix values recursively
}
});
// this is your generated url
echo implode("/", $res);
输出:
api/v1/tenants/modules/{id}
我将其用作:
现在,$ps
是前缀的数组。然后您可以使用内爆
添加/
活生生的例子:不确定是否需要使用
global
同意,@Drakula post更好一点(在我发布我的帖子后看到)
function getPrefix($v, $k) { global $ps; if ($k == "prefix") $ps[] = $v; }
array_walk_recursive($arr, 'getPrefix');