Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel PHP获取数组中的值_Php_Arrays_Laravel_Laravel Blade - Fatal编程技术网

Laravel PHP获取数组中的值

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: 您可以循环浏览每个索引: 也可以创建集合,但只需要一个值 因此,对于

我有一个叫做“图像”的数组

我知道我需要图像的src,其中“id”的值为15175604535432

若我知道ID的值,有办法得到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;