如何将 URL 的查询字符串解析为数组?

问题描述 投票:0回答:1

启动阵列

Array
 (
[0] => Array
    (
        [0] => /searchnew.aspx?Make=Toyota&Model=Tundra&Trim=CrewMax+5.7L+V8+6-Spd+AT+SR5&st=Price+asc
        [1] => 19
    )
 )

过去几天我一直在努力分解这个阵列。我发现了一些有用的函数来提取定义起点和终点时所需的字符串,但是,我认为这不适合长期使用。基本上我试图获取相对于 [0] 的字符串,并提取“Model =”和“Trim =”后面的字符串,希望有这样的数组:

Array
(
[0] => Array
(
    [0] => Tundra ***model***
    [1] => CrewMax+5.7L+V8+6-Spd+AT+SR5 ***trim***
    [2] => 19
 )
)

我通过 API 获取这些信息,因此提出动态解决方案是我最大的挑战。我意识到这是一个大问题,但是有没有更好/更少的方法来解决这个问题?

php arrays query-string string-parsing
1个回答
5
投票

parse_url()将为您获取查询字符串,parse_str()从中解析变量:

$q = parse_url($array[0][0], PHP_URL_QUERY);
parse_str($q, $result);

print_r($result);

产量:

Array
(
    [Make] => Toyota
    [Model] => Tundra
    [Trim] => CrewMax 5.7L V8 6-Spd AT SR5
    [st] => Price asc
)

现在只是

echo $result['Model']
等...

© www.soinside.com 2019 - 2024. All rights reserved.