我有以下字符串:
key:surname +++ value:Tesla|||key:name +++ value:Nikola|||key:age +++ value:86|||
如何使用PHP我可以将其转换为关联数组?像:
echo $arr['surname'];
Tesla
我正在尝试,但无法写出正确的表达方式:
$str= "key:surname +++ value:Tesla|||key:name +++ value:Nikola|||key:age +++ value:86|||";
preg_match_all("regex_here",$str,$out);
unset($out[0]);
$out = array_combine($out[1],$out[2]) ;
print_r($out);
感谢。
答案 0 :(得分:2)
这应该做你需要的:
$str= "key:surname +++ value:Tesla|||key:name +++ value:Nikola|||key:age +++ value:86|||";
preg_match_all("/key:(.*?) \+\+\+ value:(.*?)\|\|\|/", $str, $out);
$out = array_combine($out[1], $out[2]) ;
print_r($out);
正如其他人所说,如果您是存储这类数据的人,那么有许多更好的方法来存储数据,包括序列化和JSON,您可能需要查看这些数据。
答案 1 :(得分:1)
这样的事情:
preg_match_all("/:(\w+).*?:(\w+)/", $str, $matches);
var_dump(array_combine($matches[1], $matches[2]));
答案 2 :(得分:0)
为什么有三个+和三个| 。如果你是这样的话。我想你可以改成一个。然后爆炸功能可以帮助你!