【问题标题】:json_encode returns uncertain result, an array or an object [duplicate]json_encode返回不确定的结果,数组或对象[重复]
【发布时间】:2015-04-26 13:28:31
【问题描述】:

我今天在我的生产代码中发现json_encode 的奇怪结果,有时它返回一个数组,如["perl","php","python"],但有时返回一个对象,如{"0":"perl","2":"python"}。这是一个最小的例子:

$a = array("perl", "php", "python", "something other");
foreach($a as $index => $item) 
{
    if ($item == "something")
        unset($a[$index]);
}
echo json_encode($a);

为什么会这样?

【问题讨论】:

  • 你为什么要回答自己?
  • 这是一个问答式的,希望其他人可以从我的经验中受益。见here
  • 对不起,我不知道这件事……对不起!

标签: php json


【解决方案1】:

foreach 循环中,一旦$item == "something" 为真,则数组键不会连续数字索引(最后一次迭代除外),然后json_encode 返回一个对象。如果数组中的所有值都不等于“某物”,则返回一个数组。由于数组总是我想要的,我在json_encode 之前使用array_values()

【讨论】:

  • 你为什么要回答自己?
猜你喜欢
  • 2021-07-30
  • 2015-09-29
  • 2013-09-11
  • 2012-10-17
  • 2016-03-03
  • 2012-09-28
  • 1970-01-01
  • 2021-07-04
  • 2011-07-10
相关资源
最近更新 更多