在使用带有选项“ 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"}"
谢谢。
答案 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
开头的关联数组。
答案 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>
仅在行计算后才更改值。