Laravel PHP获取数组中的值
我有一个叫做“图像”的数组 我知道我需要图像的src,其中“id”的值为15175604535432 若我知道ID的值,有办法得到src吗 我已经尝试了Laravel PHP获取数组中的值,php,arrays,laravel,laravel-blade,Php,Arrays,Laravel,Laravel Blade,我有一个叫做“图像”的数组 我知道我需要图像的src,其中“id”的值为15175604535432 若我知道ID的值,有办法得到src吗 我已经尝试了dd($products[1]->images['id'][15175604535432]->src) 和$products[1]->images->where('id',15175604535432)->src,但两者都不起作用 您知道图像的索引是什么,并且希望检索其src: 您可以循环浏览每个索引: 也可以创建集合,但只需要一个值 因此,对于
dd($products[1]->images['id'][15175604535432]->src)代码>
和$products[1]->images->where('id',15175604535432)->src
,但两者都不起作用
您知道图像的索引是什么,并且希望检索其src:
您可以循环浏览每个索引:
也可以创建集合,但只需要一个值
因此,对于集合,使用“->first()”在数组上迭代,直到找到第一个匹配值
最后,创建一个新对象,仅用于检索一个值
这比foreach循环多了几个步骤,因此更具扩展性
但它看起来确实“更漂亮”。如果您想:
$image = collect($products[1]->images)->where('id', $id)->first();
$src = $image ? $image->src : null;
你可以做:
$image_src = "";
foreach($images as $image) {
if($image->id == "15175604535432") {
$image_src .= $image->src;
}
}
dd($image_src);exit;
显示您正在接收的错误。错误:未定义索引:id并调用第二个编解码器的数组上的成员函数where()。请告诉我您的解决方案是否比此更快或节省内存:……我的意思是使用collect()查找元素比使用每个循环更好?
$id = "15175604535432";
$imageSrc = null;
foreach( $images as $image ) {
if( $image->id == $id ) {
$imageSrc = $image->src;
break;
}
}
if( $imageSrc != null ) {
// src found
}
$image = collect($products[1]->images)->where('id', $id)->first();
$src = $image ? $image->src : null;
$image_src = "";
foreach($images as $image) {
if($image->id == "15175604535432") {
$image_src .= $image->src;
}
}
dd($image_src);exit;