我有一个数组,其中包含一些字符串值和一些数字值。我用了
json_encode
将数组转换为json数组,但将数字值转换为我不想要的字符串。
[["India","2"],["Panama","1"]]
我试过了
JSON_NUMERIC_CHECK
作为json_encode中的第二个参数,则它在localhost上运行良好,但在线显示错误。
Use of undefined constant JSON_NUMERIC_CHECK - assumed '
我正在使用cakephp 2.3
我猜在线上您有一个较旧的PHP版本:
JSON_NUMERIC_CHECK(整数)
将数字字符串编码为数字。自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}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句