这个字符串来自ajax GET,我决定选择“field”。
字符串:宽度(400),高度(200),年龄(99),字符串(测试)
如何将其拆分为这种数组:
$myArray =
[
'width' => 400,
'height' => 200,
'age' => 99,
'string => 'test'
];
请注意整数必须是整数,以便于计算。
答案 0 :(得分:2)
为什么不改变发送数据的方式?
$.ajax({
dataType: "json",
url: url,
data: {width:400, height: 200, age: 99, aString: "test"},
success: success
});
在PHP中处理起来会更容易。让自己头疼:)
答案 1 :(得分:2)
正则表达式可能会得到改善(这不是我的强项),但你可以这样做:
$string = 'width(400),height(200),age(99),string(test)';
preg_match_all('/(\w+)\((\w+)\)/', $string, $matches);
$output = array_combine($matches[1], $matches[2]);
哪个输出:
array
'width' => string '400' (length=3)
'height' => string '200' (length=3)
'age' => string '99' (length=2)
'string' => string 'test' (length=4)
答案 2 :(得分:1)
$str = "width(400),height(200),age(99),string(test)";
preg_match_all('/(\d|\w)+/', $str,$matches);
$array = array();
for ($i=0; $i < count($matches[0]); $i += 2) {
$array[$matches[0][$i]] = $matches[0][$i+1];
}
print_r($array);
结果:
Array
(
[width] => 400
[height] => 200
[age] => 99
[string] => test
)
答案 3 :(得分:0)
如果您使用PHP print_r
在GET中发送此变量,则不要这样做。
您可以将数据(数组)编码为JSON(使用json_encode
)然后url_encode
,然后将其发送到GET变量值。
在收到它的同时,反过来,先url_decode
然后再json_decode
以你正在寻找的数组格式获取
或者将每个width, height, age and string
作为单独的变量发送以节省所有工作