#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:
Предполагая, что это ваш массив
$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);