在laravel中访问php数组

在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')

我正在使用Laravel和Mysql进行后端开发。我有一个查询,可以打印
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;
}