Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改php/laravel中的json格式_Php_Laravel_Laravel 5 - Fatal编程技术网

更改php/laravel中的json格式

更改php/laravel中的json格式,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有以下php代码来创建json文件: foreach ($points as $key => $point) { $pointsArray[$id]['id'] = $id = $id + 1 ; $pointsArray[$id]['marker'] = $icon ; $pointsArray[$id]['name'] = $point->name ; $pointsArray[$id]['lat'] = $point->lat ; $pointsArray[$id

我有以下php代码来创建json文件:

foreach ($points as $key => $point) {
$pointsArray[$id]['id']  = $id = $id + 1 ;
$pointsArray[$id]['marker']  = $icon ;
$pointsArray[$id]['name'] = $point->name ;
$pointsArray[$id]['lat']  = $point->lat ;
$pointsArray[$id]['lng']  = $point->lng ;
$pointsArray[$id]['photo'] = $point->images;
$pointsArray[$id]['url']  = $url ;

}

return json_encode($pointsArray);
这工作很好。本申报表:

{"1":{"id":1,"marker":"greenIcon","name":"nazwa","lat":"19.09411780","lng":"49.81325260","photo":"upload\/images\/UserImage\/8ae2bcb47491c56c80c04b7638378955.jpg","url":"http:\/\/domain.test\/nazwa,u,2"},"2":{"id":2,"marker":"redIcon","name":"LAYLA 38-RIMING W100","lat":"21.33532170","lng":"51.91559550","photo":"upload\/images\/UserImage\/b4041e62f87320ce28d1e5f5434a5f5a.jpg","url":"http:\/\/domain.test\/layla-38-riming-w100,u,3"},"3":{"id":3,"marker":"redIcon","name":"sponsor","lat":"18.40476347","lng":"54.56898020","photo":"upload\/images\/UserImage\/cb36bc68e918606fd3d43ba5e8cd4667.jpg","url":"http:\/\/domain.test\/sponsor,u,4"},"4":{"id":4,"marker":"redIcon","name":"angelsa","lat":"18.39690080","lng":"54.57001480","photo":"upload\/images\/UserImage\/0a7bc1aa9c30d717533f36194ced5fa5.jpg","url":"http:\/\/domain.test\/angelsa,u,5"},"5":{"id":5,"marker":"redIcon","name":"sponsorowana jula","lat":"18.40617210","lng":"54.56171135","photo":"upload\/images\/UserImage\/0d205f080443a779a6e5615e785a9729.jpg","url":"http:\/\/domain.test\/sponsorowana-jula,u,6"},"6":{"id":6,"marker":"redIcon","name":"ananasowy kuba\u0144ski las","lat":"18.40476347","lng":"54.56898020","photo":"upload\/images\/UserImage\/b4311e82d5966da091b9e996a7eeac78.jpg","url":"http:\/\/domain.test\/ananasowy-kubanski-las,u,7"}}
我需要这种格式:

[
  {
    "id": 0,
    "marker": "greenIcon",
    "Name": "Name 01",
    "lat": "54.35070881441067",
    "lng": "18.641191756395074",
    "photo": "https://v.wpimg.pl/MjQzOTQ5YgswGDlnfk5vHnNAbT04F2FIJFh1dn56YlxlTjdgYwdiDn8NPz08UmMaPVV-Z2UMfl9pTHZifBh8UmJIfmdiAXhTfhsjMTpGLAQ1CC55NUAhATgfODcrGycaNlgy",
    "url": "http://www.mydomainm/pages/1"
  },
  {
    "id": 1,
    "marker": "greenIcon",
    "Name": "Name 02",
    "lat": "9.423300",
    "lng": "43.134600",
    "photo": "https://v.wpimg.pl/MjQzOTQ5YgswGDlnfk5vHnNAbT04F2FIJFh1dn56YlxlTjdgYwdiDn8NPz08UmMaPVV-Z2UMfl9pTHZifBh8UmJIfmdiAXhTfhsjMTpGLAQ1CC55NUAhATgfODcrGycaNlgy",
    "url": "http://www.mydomainm/pages/2"
  }
]
如何将json格式更改为此目标json?

创建元素数组(而不是键值对)

正如你所说

foreach ($points as $key => $point) {
$pointsArray[$id]['id']  = $id = $id + 1 ;
$pointsArray[$id]['marker']  = $icon ;
$pointsArray[$id]['name'] = $point->name ;
$pointsArray[$id]['lat']  = $point->lat ;
$pointsArray[$id]['lng']  = $point->lng ;
$pointsArray[$id]['photo'] = $point->images;
$pointsArray[$id]['url']  = $url ;

}

$arrayEncoded = json_encode($pointsArray);

$decoded = (json_encode(array_values(json_decode($arrayEncoded,true))));
所以乔森看起来像是你想试试

dd($decoded);
你可以用拉威尔

范例

创建资源

php artisan make:resource Points
控制器应用程序 使用您创建的资源类

use App\Http\Resources\Points as PointsResource;
把这个放在你的方法上

return new PointsResource($pointsArray);

你说的“这种格式”是什么意思?有什么区别吗?顺便提一下,这里可以用
+$id
代替
$id=$id+1
use App\Http\Resources\Points as PointsResource;
return new PointsResource($pointsArray);