我正在尝试拆分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”键是否在字符串中,可以有一组有限的键
怎么办?
编辑:像这样解决了,tx mario
for ($i=1, $n=count($k)-1; $i<$n; $i+=2) {
$s[$k[$i]] = $k[$i+1];
}
var_dump($s);
答案 0 :(得分:1)
这种有点笨拙的模式将返回一个键值列表:
/(?:(name|age|sex)(.+?(?=(?:name|age|sex|\z))))/g
因此在“nameJohnage27sexM”上使用上面的preg_match应该返回数组
["name", "John", "age", "27", "sex", "MAN"]
这样就可以创建数组[“name”=&gt; “John”,......]迭代上面的元素。