gpt4 book ai didi

php - 从 URL 构建数组树

转载 作者:可可西里 更新时间:2023-10-31 23:35:07 25 4
gpt4 key购买 nike

我需要根据给定的 url 构建一棵树(带有数组)。

我有以下网址列表:

http://domain.com/a/a.jsp
http://domain.com/a/b/a.jsp
http://domain.com/a/b/b.jsp
http://domain.com/a/b/c.jsp
http://domain.com/a/c/1.jsp
http://domain.com/a/d/2.jsp
http://domain.com/a/d/a/2.jsp

现在我需要这样的数组:

domain.com
a
a.jsp
b
a.jsp
b.jsp
c.jsp
c
1.jsp
d
2.jsp
a
2.jsp

我怎样才能用 php 做到这一点?

最佳答案

我认为 mark 的解决方案有点复杂,所以这是我的看法:

(注意:当您到达 URI 的文件名部分时,我将其同时设置为键和值,不确定那里的预期是什么,嵌套样本没有提供很多见解。)

<?php

$urls = array(
'http://domain.com/a/a.jsp',
'http://domain.com/a/b/a.jsp',
'http://domain.com/a/b/b.jsp',
'http://domain.com/a/b/c.jsp',
'http://domain.com/a/c/1.jsp',
'http://domain.com/a/d/2.jsp',
'http://domain.com/a/d/a/2.jsp'
);

$array = array();

foreach ($urls as $url)
{
$url = str_replace('http://', '', $url);
$parts = explode('/', $url);

krsort($parts);

$line_array = null;
$part_count = count($parts);

foreach ($parts as $key => $value)
{
if ($line_array == null)
{
$line_array = array($value => $value);
}
else
{
$temp_array = $line_array;
$line_array = array($value => $temp_array);
}
}

$array = array_merge_recursive($array, $line_array);
}

print_r($array);

?>

关于php - 从 URL 构建数组树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com