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"
}
}
UPDATE : 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');
。