为了账号安全,请及时绑定邮箱和手机立即绑定

PHP将分隔的字符串拆分为键/值对(关联数组)

PHP将分隔的字符串拆分为键/值对(关联数组)

临摹微笑 2019-09-03 20:28:22
我有一个像这样的字符串:key1\value1\key2\value2\key3\value3\key4\value4\key5\value5我希望它是一个关联数组,以便我能做到:echo $myArray['key1']; // prints value1echo $myArray['key3']; // prints value3//etc...我知道我可以在反斜杠上爆炸,但不知道如何从那里开始。
查看完整描述

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


查看完整回答
反对 回复 2019-09-03
?
MYYA

TA贡献1868条经验 获得超4个赞

我对RegExp不太好,但是这个行代码怎么样


parse_str(preg_replace("/key(.*?)\\value(.*?)(\\|$)/", "key$1=value$2&", $input_lines), $output);


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 1550 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信