我有一个像http://example.com/size/large/color/red这样的网址。如何将URL转换为关联数组,以便最终得到:
$my_array("size" => "large", "color" => "red");
请记住,网址可能看起来像http://example.com/color/red/size/large/type/round。所以基本上,键和值可以是任何东西。但他们的关键始终是价值。
答案 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
)