3 回答
TA贡献1895条经验 获得超7个赞
这样的事情怎么样:
$str = 'key1\value1\key2\value2\key3\value3\key4\value4\key5\value5';
$list = explode('\\', $str);
$result = array();
for ($i=0 ; $i<count($list) ; $i+=2) {
$result[ $list[$i] ] = $list[$i+1];
}
var_dump($result);
哪能得到你:
array
'key1' => string 'value1' (length=6)
'key2' => string 'value2' (length=6)
'key3' => string 'value3' (length=6)
'key4' => string 'value4' (length=6)
'key5' => string 'value5' (length=6)
基本上,这里的想法是:
拆分字符串
这会给你一个数组,如 'key1', 'value1', 'key2', 'value2', ...
然后,每次使用2次跳转迭代此列表:
一个元素作为关键 - 指向的元素 $i
就在它之后的一个值 - 指向的那个 $i+1
TA贡献1868条经验 获得超4个赞
我对RegExp不太好,但是这个行代码怎么样
parse_str(preg_replace("/key(.*?)\\value(.*?)(\\|$)/", "key$1=value$2&", $input_lines), $output);
添加回答
举报