在laravel中访问php数组
我正在使用Laravel和Mysql进行后端开发。我有一个查询,可以打印在laravel中访问php数组,php,mysql,arrays,laravel,Php,Mysql,Arrays,Laravel,我正在使用Laravel和Mysql进行后端开发。我有一个查询,可以打印userid、score和district。Laravel查询生成器窗体中的查询 $districtRank=DB::table('scores') ->join('users','users.id','=','scores.user_id') ->select('scores.score','users.id','users.district')
userid
、score
和district
。Laravel查询生成器窗体中的查询
$districtRank=DB::table('scores')
->join('users','users.id','=','scores.user_id')
->select('scores.score','users.id','users.district')
->orderBy('scores.score','DESC')
->get()->toArray();
当我dd($districtRank)
时收到的数据是
array:9 [
0 => {#808
+"score": 40
+"id": 3
+"district": "Vavuniya"
}
1 => {#809
+"score": 38
+"id": 20
+"district": "Vavuniya"
}
2 => {#810
+"score": 36
+"id": 22
+"district": "Vavuniya"
}
3 => {#811
+"score": 30
+"id": 3
+"district": "Vavuniya"
}
4 => {#812
+"score": 30
+"id": 12
+"district": "Vavuniya"
}
5 => {#813
+"score": 29
+"id": 21
+"district": "Vavuniya"
}
6 => {#814
+"score": 25
+"id": 15
+"district": "Kegalle"
}
7 => {#815
+"score": 20
+"id": 18
+"district": "Kalutara"
}
8 => {#816
+"score": 12
+"id": 23
+"district": "Vavuniya"
}
]
变量转储($districtRank)
如何访问数组元素
我已经试过使用
foreach($districtRank as $item){
$id=$item[0];
}
以及
foreach($districtRank as $item){
$id=$item["id"];
}
两者都给了我一个错误
无法将stdClass类型的对象用作数组
为什么会发生这种情况以及如何修复它。您的$item不是数组。尝试使用
$item->id
因为对象和数组不同(对象数组!=数组) 尝试改用->运算符:
foreach ($districtRank as $item){
$id = $item->id;
}
使用一些特定的foreach参数可以获得更好的结果
foreach($district$ank as $key => $value){
$id = $value['id'];
}
你应该试试这个:
foreach ($districtRank as $key => $item){
$id = $item[$key]->id;
}
它已经说,
不能使用stdClass类型的对象作为数组
,这意味着它不是数组,而是一个对象->
使用箭头符号如果编辑到$districtRank=DB::table(…)->get(),我已经在问题中添加了我的var_dump的可能重复项;使用我上面的foreach,您可以显示结果或错误?对不起,我的坏消息是它成功了,并给了我正确的值。有没有办法将其转换为数组而不是访问对象elements@NaveedSheriffdeen:你可以看到这个答案,希望它有帮助!
foreach ($districtRank as $key => $item){
$id = $item[$key]->id;
}