Laravel:如何从阵列中选择图像

时间:2013-11-18 15:30:18

标签: php arrays laravel laravel-4

Laravel的新手,似乎无法解决这个微不足道的问题。在这里使用别人的代码。他们已经定义了数组“资产”,其中有4个图像被拉出来:

foreach(unserialize($productData['assets']) as $asset){
   if(in_array($asset->rel,$denyRel)){
        continue;
   }
    $assets[$i]['link'] = $asset->href;
    $assets[$i]['rel'] = $asset->rel;
   $i++;
}

结果如下:

 [assets] => Array
         (
             [0] => Array
                 (
                     [link] => http://test.images-amazon.com/images/I/image1L.jpg
                     [rel] => PT01
                 )

                 [1] => Array
                     (
                         [link] => http://test.images-amazon.com/images/I/image2L.jpg
                         [rel] => PT02
                     )

                 [2] => Array
                     (
                         [link] => http://test.images-amazon.com/images/I/image3L.jpg
                         [rel] => PT03
                     )

                 [3] => Array
                     (
                         [link] => http://test.images-amazon.com/images/I/image4L.jpg
                         [rel] => MAIN
                   ) 
            )

    )

要拉出所有这些,我可以执行以下foreach循环:

@foreach($assets as $asset)
    <div class="alt-img">
        <img src="{{$asset['link']}}" data-rel="{{$asset['rel']}}" alt="{{$pageTitle}}" data-altImage="{{$asset['link']}}">
    </div>
@endforeach

但是,我只需要从阵列中提取特定的一些,如PT01或PT02。有人能指出我正确的方向吗?谢谢。注意:站点通过AWS托管,URL略有修改。

1 个答案:

答案 0 :(得分:0)

根据您的情况选择。 假设您只想保留'PT01'和'PT02',您可以这样做:

<?php $allowed = array('PTO1','OT02'); // This is just an example ?>

@foreach($assets as $asset)
  @if(in_array($asset['rel'], $allowed))
    <div class="alt-img">
        <img src="{{$asset['link']}}" data-rel="{{$asset['rel']}}" alt="{{$pageTitle}}" data-altImage="{{$asset['link']}}">
    </div>
  @endif
@endforeach

上述代码仅打印那些data-rel(井,rel索引)'PTO1'和'PT02'的图像。 基本上,你已经在循环,所以只需选择(根据你想要的标准)打印哪一个