Laravel 5.4数组删除键索引

时间:2017-08-25 02:55:03

标签: 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
   },
   "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转换为字段中。

3 个答案:

答案 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();