将逗号分隔字符串中的每两个值转换为关联数组元素

问题描述 投票:0回答:3

我有一串键值对,以逗号作为分隔符。 我需要遍历字符串获取键和值并将它们推入数组中。

我在编写正则表达式时遇到问题,因为该值是十进制数。 字符串示例如下:

 value,0.23,word,0.42,dog,0.28000000000000014,cat,0,car,17.369999999999997

知道如何编写正确的正则表达式吗?

php string csv associative-array string-parsing
3个回答
2
投票

您可以尝试下面的正则表达式来获取键值对。

([a-z]+),(\d+(?:\.\d+)?)

演示


1
投票

您可以使用

array_chunk()

$values = array_chunk(explode(',', $string), 2)

foreach ($values as $pair) {
    list($key, $value) = $pair;
    // do something
}

0
投票

您可以使用以下代码:

$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"
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.