首页 > 解决方案 > 将数据格式从字符串数组转换为数字

问题描述

我有

$resultArray = $sth->fetchAll(PDO::FETCH_NUM); 
json_encode($resultArray,JSON_NUMERIC_CHECK); 

如:[[“0.003,445.85”],...]

我需要这样的数据:

[[0.003,445.85],...]

尝试时:

while ($row = $sth->fetch(PDO::FETCH_NUM)) {
   $resultArray[] = explode(',', $row);
}
json_encode($resultArray,JSON_NUMERIC_CHECK);

我有:

[空,空,...]

如何实现目标?

标签: php

解决方案


假设这是你的数组

$resultArray = [
  ["0.003,445.85"],
  ["0.051,500.08"]
];

$result = array();
foreach($resultArray as $str) {
  $inner = array();
  foreach($str as $s) {
    $split = explode(',',$s);
    $inner = array_map('floatval',$split);
  }
  array_push($result,$inner);
}

echo json_encode($result,JSON_PRETTY_PRINT);

哪个结果

[
  [0.003,445.85],
  [0.051,500.08]
]

或者如果你的例子错了,那就是

$resultArray = [["0.003","445.85"]];

json_encodeJSON_NUMERIC_CHECK意愿的作品


推荐阅读