Código Javascript
:
Ver originalString.prototype.deserializar = function(){
var encuentra = this.match(/\w+(\[(\w+)?\])?=([\w\d]+)/g), i, l
var obj = new Array(), old
for(i=0,l=encuentra.length;i<l;i++){
var Var = encuentra[i].split(/=/)
Var[0] = Var[0].replace(/\W+/g,"")
if(old == Var[0]){
if(typeof(obj[Var[0]]) != 'object')
obj[Var[0]] = [obj[Var[0]]]
obj[Var[0]].push(Var[1])
}else{
old = Var[0]
obj[Var[0]] = Var[1]
}
}
return obj;
}
var texto = "a[]=1&a[]=2&a[]=3&a[]=5&country=PE&otravariable=2011";
var Arr = texto.deserializar();
alert(Arr['a'].length) // 4
alert(Arr['a'][0]) // 1
alert(Arr['a'][3]) // 5
alert(Arr['country']) // PE
alert(Arr['otravariable']) // 2011