[英]Can I divide an array or string into multiple variables?
这是我去过的地方:
我通过肥皂进行了PHP客户端调用,以检索数据数组,
我成功接收并通过json_encode将数组转换为JSON,
然后,我将其回显到我的页面。
这是我的位置:
我以这种格式取回阵列...
{ “方法名”: “ID,11 | 1 | Item1,22 | 2 | Item2,33 | 3 |项目3”}
这是我想成为的地方:
使用Javascript或JSON,我的目标是最终得到2个变量(方法和ID)和一个变量数组(ItemList)...即
我的脚本的前面和后面都在工作,但是我迷住了array(string)...
如何解析,划分或拆分此结果?
如果在调用json_encode之前将它作为php中的混合数组使用,那么您自己会变得更加简单(这样,不是字符串,每个项目都是它自己的JSON对象)。
例:
$arr = array();
$itemList = array();
$itemList[1] = "11|1";
$itemList[2] = "22|2";
$itemList[3] = "33|3";
$arr['Method']="MethodName";
$arr['ID']= "ID";
$arr['itemList'] = $itemList;
$output = json_encode($arr);
这导致$output
具有以下JSON:
{"Method":"MethodName","ID":"ID","itemList":{"1":"11|1","2":"22|2","3":"33|3"}}
由于itemList已经是JSON中的数组,因此您可以轻松地将其取出。
我可能会尝试正则表达式的第一件事。 就像是
var match = data.match(/\{"(.+)"\:"([^,]+),(.+)"\}/);
括号将分隔匹配项。 match[0]
将是整个对象, match[1]
将是方法名称, match[2]
将是id, match[3]
将是其余的字符串。 你可以做
var itemList = match[3].split(',');
得到第三部分的数组。
假设您的初始数组是带有值{“ MethodName”:“ ID,11 | 1 | Item1,22 | 2 | Item2,33 | 3 | Item3”}的initial_array
for (key in initial_array) {
Method = key; // Method = "MethodName"
break;
}
myvalue = initial_array[Method];
myarray = myvalue.split(","); // myarray = ["ID","11|1|Item1",...]
ID = myarray[0]; // ID = "ID"
ItemList = myarray.splice(1); // ItemList = ["11|1|Item1","22|2|Item2",...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.