如何修复输出的json_decode

时间:2019-05-10 12:04:43

标签: php

在使用带有选项“ JSON_FORCE_OBJECT”的json_decod时,其投入产出指数从0开始,其值为true,但是我需要从1开始投入产出指数,这样我才能解决问题?

json_encode($request->get('poll_items'), JSON_FORCE_OBJECT)

输出结果为当前BUT:

"{"0":"option1","1":"option2","2":"option3"}"

我需要这样返回:

"{"1":"option1","2":"option2","3":"option3"}"

谢谢。

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用array_unshift()unset()

$array = $request->get('poll_items');

// Add an element to the beginning
array_shift($array, '');

// Unset the first element
unset($array[0]);

现在,您剩下一个以1开头的关联数组。

Here's a demo

答案 1 :(得分:0)

我的第一个问题是,为什么您需要将其索引为1而不是0?

如果此数据在控件之外使用,则可以将数据映射到另一个数组并对其进行编码。例如:

$newArray = array();
foreach ($request->get('poll_items') as $index => $value) {
    $newArray[++$index] = $value
}
$output = json_encode($newArray, JSON_FORCE_OBJECT);

注意:++$index代替$index++,因为后者<text><text>仅在行计算后才更改值。