gpt4 book ai didi

arrays - json_encode 将数字变为字符串

转载 作者:行者123 更新时间:2023-12-04 02:23:57 29 4
gpt4 key购买 nike

我有一个数组,其中包含一些字符串值和一些数值。我用过

json_encode

将数组转换为 json 数组,但它将数字值转换为我不想要的字符串。

 [["India","2"],["Panama","1"]]

我试过了

JSON_NUMERIC_CHECK

作为 json_encode 中的第二个参数,它在本地主机上工作正常,但在线显示错误。

Use of undefined constant JSON_NUMERIC_CHECK - assumed '

我正在使用 cakephp 2.3

最佳答案

我在网上猜测您使用的是旧版本的 PHP:

JSON_NUMERIC_CHECK (integer)

Encodes numeric strings as numbers. Available since PHP 5.3.3.

当您对 JSON 进行编码时,如果 PHP 知道它不是字符串,则它不会有引号。如果您需要手动执行此操作,您可以执行以下操作:

<?php

function json_numeric($array)
{
if (is_array($array) || is_object($array)) {
foreach($array as &$prop) {
if (is_numeric($prop)) {
$prop = intval($prop);
}
if (is_object($prop) || is_array($prop)) {
$prop = json_numeric($prop);
}
}
}
return $array;
}

$x = array("a" => 1, "b" => "2", "c"=>array("d"=>1, "e"=>"2"));
echo json_encode(json_numeric($x));
//{"a":1,"b":2,"c":{"d":1,"e":2}}
$y = new stdClass();
$y->a = 1;
$y->b = "2";
echo json_encode(json_numeric($y));
//{"a":1,"b":2}
?>

关于arrays - json_encode 将数字变为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24605906/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com