我正在尝试拆分key1value1key2value2的串联字符串问题是我不知道它们是按哪个顺序排列的
$k = preg_split("/(name|age|sex)/", "nameJohnage27sexM");
var_dump($k);
$k = preg_split("/(sex|name|age)/", "age27sexM");
var_dump($k);
所以我不知道年龄或名字是$k的第 1 个还是第 2 个索引,甚至不知道字符串中是否有"name"键,可以有一组有限的键
怎么办?
编辑:像这样解决,德克萨斯州马里奥
for ($i=1, $n=count($k)-1; $i<$n; $i+=2) {
$s[$k[$i]] = $k[$i+1];
}
var_dump($s);
这种有点笨拙的模式将返回一个键值列表:
/(?:(name|age|sex)(.+?(?=(?:name|age|sex|'z))))/g
因此preg_match在"nameJohnage27sexM"上使用上述内容应该返回数组
["name", "John", "age", "27", "sex", "MAN"]
这使得通过迭代上面的元素来创建数组 ["name" => "John", ...] 成为可能。