所以我有这个数组,
Array
(
[0] => Array (
[task] => Sleeping
[duration] => 2
)
[1] => Array (
[task] => Eating
[duration] => 1
)
)
当我json_encode()它,它返回
[{"task":"Sleeping","duration":2},{"task":"Eating","duration":1}]
我需要它
[{"task":"Sleeping","duration":"2"},{"task":"Eating","duration":"1"}]
有什么方法吗?
答案 0 :(得分:1)
转储显示数组中的变量首先是一个int,所以在将其推入数组之前将其转换为字符串
答案 1 :(得分:1)
json_encode按照type输出值,在您的情况下,它们是整数。为了将所有值包含在引号中,您需要将cast每个值作为字符串:
<?php
$data = array(0 => array('task' => 'Sleeping', 'duration' => 2), 1 => array('task' => 'Eating', 'duration' => 1));
array_walk_recursive($data, function (&$value) { $value = (string)$value; });
header('content-type: application/json; charset=utf-8');
echo json_encode($data);
递归字符串转换由deceze
提供输出:
[{"task":"Sleeping","duration":"2"},{"task":"Eating","duration":"1"}]
漂亮的打印输出:
[
{
"task": "Sleeping",
"duration": "2"
},
{
"task": "Eating",
"duration": "1"
}
]