Php Laravel 5.4数组删除键索引
在我的控制器中,此语句生成一个数组:Php Laravel 5.4数组删除键索引,php,laravel,Php,Laravel,在我的控制器中,此语句生成一个数组: // 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 },
// 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
....
}
]
$finalRegions = $regions->sortBy('continent_id')->values();
这存储在表类中的一个字段中,转换为json
$res = [];
foreach ($finalRegions as $key => $value) {
$res[] = $value;
}
// $res contains desired result
编辑:简单的一行(感谢珍妮)
编辑:简单的一行(感谢珍妮)
我仍然不明白为什么需要删除这些索引,但可以通过这种方式来完成
<?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));
我仍然不明白为什么需要删除这些索引,但可以通过这种方式来完成
<?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));
由于您的问题标题中有“Laravel”,而且看起来您的区域已经包含在Laravel集合中,因此有一种更简单的方法。只需将结果通过->sortBy()子句后面的->values()传递,如下所示:
[
{
"id":1,
"name":"Alaska",
"image_x":227,
"image_y":117
},
{
"id":5,
"name":"Australian Antartic Territory",
"image_x":1187,
"image_y":1037
....
}
]
$finalRegions = $regions->sortBy('continent_id')->values();
因为你的问题标题中有“Laravel”,而且看起来你已经在Laravel集合中有了你的区域,所以有一个更简单的方法。只需将结果通过->sortBy()子句后面的->values()传递,如下所示:
[
{
"id":1,
"name":"Alaska",
"image_x":227,
"image_y":117
},
{
"id":5,
"name":"Australian Antartic Territory",
"image_x":1187,
"image_y":1037
....
}
]
$finalRegions = $regions->sortBy('continent_id')->values();
在我看来,你不能,因为这不是一个有效的JSONHi@vietnguyen09,你是对的!我的打字错误。我已经修复了问题。我想要一个没有索引的对象数组。为什么需要删除这些索引?一致性。我还有三个包含json对象数组的字段。然后我在前端的JS中以同样的方式访问它们。我也不明白为什么这一个字段(像其他三个字段一样以集合开始)在流程结束时以这种方式格式化。在我看来,你不能这样做,因为这不是一个有效的JSONHi@vietnguyen09,你是对的!我的打字错误。我已经修复了问题。我想要一个没有索引的对象数组。为什么需要删除这些索引?一致性。我还有三个包含json对象数组的字段。然后我在前端的JS中以同样的方式访问它们。我也不明白为什么这一个字段(一开始像其他三个字段一样是一个集合)在过程结束时会以这种方式格式化。说array\u values($finalRegions)
?哈哈,我以前用过PHP,不记得用过这个,所以提出了一种老式的方式。顺便说一句,很长时间以来我一直在说数组值($finalRegions)
?哈哈,我以前用过PHP,但不记得用过这个,所以我提出了一种老式的方法。谢谢你。