PHP(和其他服务器端语言)支持在查询字符串中传递数组。
www.mydomain.com?param1=example¶m2[key1]=value1¶m2[key2]=value2
PHP 会这样解析 GET 字符串:
array(2) {
["param1"]=>
string(7) "example"
["param2"]=>
array(2) {
["key1"]=>
string(6) "value1"
["key2"]=>
string(6) "value2"
}
}
如果您不传递键,它将成为一个数字数组:
www.mydomain.com?param1=example¶m2[]=value1¶m2[]=value2
将被解析为:
array(2) {
["param1"]=>
string(7) "example"
["param2"]=>
array(2) {
[0]=>
string(6) "value1"
[1]=>
string(6) "value2"
}
}
更新:您还可以在 JavaScript 中解析查询字符串。
这是我制作的一个简单的 jQuery 插件:
$.parseQuery = function(str) {
var ret = {};
$.each(str.split("&"), function() {
var data = this.split('='),
name = decodeURIComponent(data.shift()),
val = decodeURIComponent(data.join("=")).replace('+', ' '),
nameVal = name.match(/(.*)\[(.*)\]/);
if (nameVal === null) {
ret[name] = val;
}
else {
name = nameVal[1];
nameVal = nameVal[2];
if (!ret[name]) {
ret[name] = nameVal ? {} : [];
}
if ($.isPlainObject(ret[name])) {
ret[name][nameVal] = val;
}
else if($.isArray(ret[name])){
ret[name].push(val);
}
}
});
return ret;
};
然后你可以这样做:$.parseQuery('param1=example¶m2[]=value1¶m2[]=value2');
。