在我的控制器中,此语句生成一个数组:
// sort the region collection by continent for faster access in front end
$finalRegions = $regions->sortBy('continent_id');
{
"0":{
"id":1,
"name":"Alaska",
"image_x":227,
"image_y":117
},
"1":{
"id":5,
"name":"Australian Antartic Territory",
"image_x":1187,
"image_y":1037
....
}
}
如何从结果对象中删除索引,如下所示:
[
{
"id":1,
"name":"Alaska",
"image_x":227,
"image_y":117
},
{
"id":5,
"name":"Australian Antartic Territory",
"image_x":1187,
"image_y":1037
....
}
]
它存储在表类中的json
转换为字段中。
答案 0 :(得分:4)
$res = [];
foreach ($finalRegions as $key => $value) {
$res[] = $value;
}
// $res contains desired result
编辑:简单的一个班轮(感谢Jannie)
$res = array_values($finalRegions)
答案 1 :(得分:0)
我仍然不明白为什么你需要删除这些索引,但你可以这样做。
<?php
$jsonArr = '{
"0":{
"id":1,
"name":"Alaska",
"image_x":227,
"image_y":117
},
"1":{
"id":5,
"name":"Australian Antartic Territory",
"image_x":1187,
"image_y":1037
}
}';
$decodeArr = json_decode($jsonArr, true);
print_r(json_encode($decodeArr));
这只是我的想法,您可以编辑查询返回JSON字符串的部分代码。
答案 2 :(得分:0)
由于您的问题标题中带有“ Laravel”,并且看起来您已经在Laravel Collection中拥有您的区域,因此有一种更简单的方法。只需通过-> values()之后-> sortBy()子句将结果通过管道传递,如下所示:
$finalRegions = $regions->sortBy('continent_id')->values();