如何将URL解析为关联数组?

时间:2011-10-20 23:48:59

标签: php arrays url

我有一个像http://example.com/size/large/color/red这样的网址。如何将URL转换为关联数组,以便最终得到:

$my_array("size" => "large", "color" => "red");

请记住,网址可能看起来像http://example.com/color/red/size/large/type/round。所以基本上,键和值可以是任何东西。但他们的关键始终是价值。

2 个答案:

答案 0 :(得分:4)

$url = 'http://example.com/size/large/color/red';

$path = trim(parse_url($url, PHP_URL_PATH), '/');
$path_chunks = preg_split('/\/+/', $path);

$arr = array();

for($i = 0, $count = count($path_chunks); $i < $count; $i += 2)
{
   $arr[$path_chunks[$i]] = $path_chunks[$i + 1];
}

答案 1 :(得分:1)

您可以提取构成URL的部分,然后逐个循环遍历它们,并将第一个作为键,第二个作为值。

$url = 'http://example.com/color/red/size/large/type/round';
$my_array = array();
$parts = explode('/', $url);
for ($i = 3, $len = count($parts); $i < $len; $i += 2)
{
    $my_array[$parts[$i]] = $parts[$i + 1];
}

这会产生:

Array
(
    [color] => red
    [size] => large
    [type] => round
)
相关问题