2011-10-20 15 views
0

私はhttp://example.com/size/large/color/redのようなURLを持っています。 URLはhttp://example.com/color/red/size/large/type/roundようになりますことを、心の中でURLを連想配列に解析するにはどうすればよいですか?

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

ベア:私は連想配列にURLを変換することができますどのように私はで終わるようにします。基本的に、キーと値は何でもかまいません。しかし、彼らは常にキーの後に値が続きます。

答えて

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を構成する部分を抽出し、2×2ループして最初のものをキー、2番目のものを値として割り当てることができます。

$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

関連する問題