我有一个键值对字符串,用逗号作为分隔符。我需要遍历字符串,获取键和值,并将它们推入数组。
我有一个问题,写一个正则表达式的值是一个十进制数字。该字符串的示例如下:
value,0.23,word,0.42,dog,0.28000000000000014,cat,0,car,17.369999999999997
任何想法如何写一个正确的正则表达式?
正则表达式让我头疼!
您可以尝试下面的正则表达式来获取键、值对。
([a-z]+),('d+(?:'.'d+)?)
演示您可以使用array_chunk()
:
$values = array_chunk(explode(',', $string), 2)
foreach ($values as $pair) {
list($key, $value) = $pair;
// do something
}
您可以使用以下代码:
$str = 'value,0.23,word,0.42,dog,0.28000000000000014,cat,0,car,17.369999999999997';
$parts = explode(',', $str);
$result = array();
for($i=0; $i < count($parts); $i+=2) {
$result[$parts[$i]] = $parts[$i+1];
}
var_dump($result);
输出:array(5) {
["value"]=>
string(4) "0.23"
["word"]=>
string(4) "0.42"
["dog"]=>
string(19) "0.28000000000000014"
["cat"]=>
string(1) "0"
["car"]=>
string(18) "17.369999999999997"
}