json_decode - 强制数组键为字符串

时间:2015-06-22 12:53:57

标签: php json associative-array

看看以下代码:

$a = json_decode('{"0":"xy"}', true);

这将返回一个关联数组,如[0 => "xy"]

有没有办法自动将密钥转换为数字?我希望得到的结果是数组["0" => "xy"],其中字符串仅作为键。

2 个答案:

答案 0 :(得分:2)

首先将其解码为对象(不带true参数),然后将其类型化为数组:

$a = (array) json_decode('{"0":"xy"}');
var_dump($a);

输出继电器:

array (size=1)
  '0' => string 'xy' (length=2)

答案 1 :(得分:0)

不确定为什么要将数组数组键作为字符串。当尝试通过键搜索数组或重新键入数组时,它会使生活变得更加困难。

但是,如果你真的希望你的密钥成为字符串,这应该有帮助

$array = json_decode('{"0":"xy"}', true);
foreach($array as $key => $value) { 
   $newArray[(string) $key] = $value;
}