创建Laravel数组

创建Laravel数组

问题描述:

I'm trying to create an array with Laravel but customise some of the values.

For example, if I was to return $user->rounds this would return

"data": [
    {
        "id": 3,
        "name": "sample name"
    },
    {
        "id": 4,
        "name": "sample name 2"
    }
]

I want to customise the return to something like

"data": [
    {
        "id": 3,
        "name": "sample name",
        "extra": "Extra Detail"
    },
    {
        "id": 4,
        "name": "sample name 2",
        "extra": "Extra Detail"
    }
]

I'm trying to do it, by the following code:

$data = array();

foreach ($user->rounds as $r) {
    $data = [
        'id' => $r->id,
        'name' => $r->name,
        'extra' => 'Test Extra'
    ];
}

return $data;

But it returns only one round while it should be returning 3.

我正在尝试使用Laravel创建一个数组但是自定义了一些值。 p> \ n

例如,如果我要返回 $ user-> rounds code>,则返回 p>

 “data”:[
 {  
“id”:3,
“名称”:“样本名称”
},
 {
“id”:4,
“名称”:“样本名称2”
} 
]  
  code>  pre> 
 
 

我想将返回自定义为 p>

 “data”:[
 {
  “id”:3,
“名称”:“示例名称”,
“额外”:“额外详细信息”
},
 {
“id”:4,
“名称”:“示例 名称2“,
”额外“:”额外细节“
} 
] 
  code>  pre> 
 
 

我正在尝试通过以下代码执行此操作: p>

  $ data = array(); 
 
foreach($ user-> rounds as $ r){
 $ data = [
'id'=>  ;  $ r-> id,
'name'=>  $ r-> name,
'extra'=>  '测试额外'
]; 
} 
 
返回$ data; 
  code>  pre> 
 
 

但它只返回一轮,而它应该返回3。 p> div>

You need to add array to $data array with each iteration:

$data[] = [
    'id' => $r->id,
    'name' => $r->name,
    'extra' => 'Test Extra'
];

Also, you could use array_push() function for that.

Try to do like this

$data = array();
$i=0;
foreach($user->rounds as $r){
  $data[$i] = [
    'id' => $r->id,
    'name' => $r->name,
    'extra' => 'Test Extra'
  ];
  $i++;
}
return $data;