【问题标题】:convert array element from string to number将数组元素从字符串转换为数字
【发布时间】:2011-11-10 22:33:24
【问题描述】:

我有一些来自查询的数字,我必须使用 json_encode 函数来表示。 一切正常,但输出看起来像这样

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

所以我认为问题在于所有数字都存储为字符串。 有没有把所有元素转换成数字的功能?

【问题讨论】:

  • "so I think that the problem is that all the numbers are stored as string."什么问题?

标签: php arrays string numbers json


【解决方案1】:

您可能希望将 JSON_NUMERIC_CHECK 添加到您的 json_encode 函数中:

   json_encode($array, JSON_NUMERIC_CHECK);

【讨论】:

  • 仅供参考,这是在 PHP 5.3.3 中添加的。
  • @Rocket 我知道,只是想让他知道可用的选项。
  • 很高兴我能帮上忙。如果需要,您可以将答案标记为正确
【解决方案2】:

您可以通过以下方式获取变量的整数或浮点值:

echo (integer)$variable;
echo (float)$variable;

【讨论】:

  • 如果我使用 echo 而不是使用 json_encode,那就太好了...谢谢大家的回答!
【解决方案3】:
<?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]]}

【讨论】:

    猜你喜欢
    • 2015-01-04
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2018-07-01
    相关资源
    最近更新 更多