2011-10-20 24 views

回答

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]; 
} 
+0

是的 - 工作。非常感謝。 – xd3v

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 
) 
+0

上這方面的一個的print_r正在返回剛剛'陣列([顏色] =>紅色[] =>)' - 的意義,它僅僅示出了最後的鍵/值對。 – xd3v

+0

@joeyr,你確定嗎?我剛剛運行了上面的確切代碼,我得到了不同的東西。在答案中粘貼。 – rid

+0

我的壞...完全工作。謝謝! – xd3v