преобразовать элемент массива из строки в число - PullRequest
1 голос
/ 11 ноября 2011

У меня есть несколько чисел, которые приходят из запроса и которые я должен представить, используя функцию json_encode. Все работает, но вывод выглядит так

{ "label": "man", "data":[["0","1.13"], ["1","1.38"], ["2","1.87"], ["3","1.12"], ["4","1.28"]]}

так что я думаю, что проблема в том, что все числа хранятся в виде строки. Есть ли функция для преобразования всех элементов в число?

Ответы [ 3 ]

4 голосов
/ 11 ноября 2011

Возможно, вы захотите добавить JSON_NUMERIC_CHECK в вашу json_encode функцию:

   json_encode($array, JSON_NUMERIC_CHECK);
1 голос
/ 11 ноября 2011

Вы можете получить целочисленное значение или значение с плавающей запятой переменной с помощью этого:

echo (integer)$variable;
echo (float)$variable;
0 голосов
/ 11 ноября 2011
<?php

$json = '{ "label": "man", "data":[["0","1.13"], ["1","1.38"], ["2","1.87"], ["3","1.12"], ["4","1.28"]]}';

$structure = json_decode($json, true);
$newData = $structure['data'];

for ($x=0;$x<count($newData);$x++):
    for ($i=0;$i<count($newData[$i]);$i++):
        $newData[$x][$i] = (float)$newData[$x][$i];
    endfor;
endfor;

$structure['data'] = $newData;
print json_encode($structure);

Новый результат:

{"label":"man","data":[[0,1.13],[1,1.38],[2,1.87],[3,1.12],[4,1.28]]}
...