Преобразование формата данных из массива строк в числа

#php

#php

Вопрос:

У меня есть

 $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);
  

У меня есть:

[null, null, …]

Как достичь цели?

Комментарии:

1. Cannot reproduce

Ответ №1:

Предполагая, что это ваш массив

 $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_encode с JSON_NUMERIC_CHECK помощью will работает

Комментарии:

1. Да! Большое спасибо. И одно исправление: array_push($result,$inner);