PHP - 键/值对中的拆分字符串

Seb*_*itz 17 php string split key-value

我有一个像这样的字符串:

key = value,key2 = value2

我想把它解析成这样的东西:

array(
  "key" => "value",
  "key2" => "value2"
)
Run Code Online (Sandbox Code Playgroud)

我可以做点什么

$parts = explode(",", $string)
$parts = array_map("trim", $parts);
foreach($parts as $currentPart)
{
    list($key, $value) = explode("=", $currentPart);
    $keyValues[$key] = $value;
}
Run Code Online (Sandbox Code Playgroud)

但这似乎是荒谬的.必须有一些方法来使用PHP更聪明地做到这一点吗?

eta*_*ion 19

如果你不介意使用正则表达式...

$str = "key=value, key2=value2";
preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r); 
$result = array_combine($r[1], $r[2]);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)


小智 13

<?php parse_str(str_replace(", ", "&", "key=value, key2=value2"), $array); ?>
Run Code Online (Sandbox Code Playgroud)


Cra*_*ent 11

如果您更改要使用的字符串&而不是,分隔符,则可以使用parse_str()