如何在laravel中的数组对象中添加键值对

时间:2017-01-07 16:23:03

标签: arrays object laravel-5 key-value

我在laravel中得到以下输出。

[  {"id":"1","name":"Mite Salary"},  {"id":"2","name":"Riky"},  {"id":"3","name":"Raj"}  ]

我想添加另一个年龄段的键值对:person_age并希望输出为

[  {"id":"1","name":"Mite Salary", "age":'20'},  {"id":"2","name":"Riky", "age":'25'},  {"id":"3","name":"Raj", "age":"40"}  ]

这个时代来自mysql数据库$y = DB::table("age")->get(); 现在考虑$ y = [20,25,40];

但是我没有得到如何使用foreach循环。请帮助我。感谢你的期待

3 个答案:

答案 0 :(得分:0)

你正在做的事情不是很好的逻辑,因为你不能知道每个人的年龄,因为人和年龄没有联系如果一个人被删除会发生什么,你会删除相同的id年龄?你应该做关系:

1)age_id添加到您的人员表

2)Person模型添加关系

public function age()
{
    return $this->belongsTo('App\Age');
}

3)现在使用$person->age->"Name of coulmn"

如果你仍然想这样做,那就是

$i = 0;
foreach($pearsons as $person) {
    $person->age = $age[$i]
    $i++
}

答案 1 :(得分:0)

实际上我所做的是使用foreach循环:

$x = [ {"id":"1","name":"Mite Salary"}, {"id":"2","name":"Riky"},  {"id":"3","name":"Raj"} ]

在那个foreach循环中我使用了

$x[$x]->age = implode(",",$y[$key]);

最终代码是:

foreach($x as $key => $value) { 
  $x[$key]->av = implode(",",$y[$key]);
}

答案 2 :(得分:0)

你会做这样的事情。假设你有一组人员

$persons = [
  {
    "id" : "1",
    "name":"Mite Salary"
  },
  {
    "id" : "2",
    "name":"Riky"
  },
  {
    "id" : "3",
    "name":"Raj"
  }
];

foreach ($persons as $person) {
  $person['age'] = TableName::where("id","=", "$person->id" )->get('age');
}