【问题标题】:Laravel : Collection Of array loop when array is nullLaravel:当数组为空时数组循环的集合
【发布时间】:2018-05-06 01:42:44
【问题描述】:

当我打印时,我得到了两个空数组的集合:

     array:2 [▼
       0 => Collection {#419 ▼
            #items: []
          }
       1 => Collection {#412 ▼
          #items: []
       }
   ]

在这个空数组的计数中,我得到了 "Count - 2"。我想做的事 使用我的代码循环两次(这是我的计数)并检查是否 在 ARRAY-1 中数据可用,然后打印 “数据可用” 否则打印 “数据不可用”

这是我的代码:

两个foreach循环因为数组的集合

   foreach($TestArr as $TestArr1) {
      foreach($TestArr1 as $item) {
         if($item->gallery_id == $val && $item->is_thumb_image == 1) {
            echo "YesImage";
         } else {
            echo "NoImage";
         }
     } 
  } 

这是完整的代码;

<div class="container">
         @if(!empty($galleryArr)) // Gt a folder name
           @foreach($galleryArr as $key => $val)
             <div class="col-md-3">
                <div class="service-block service1">
                 <?php 

                       foreach($TestArr as $TestArr1) { //set for thumb image 
                        if(count($TestArr1)){
                          foreach($TestArr1 as $item) {
                             if($item->gallery_id == $val && $item->is_thumb_image == 1) {
                                echo "YesImage";
                             } 
                          }
                        }else{
                          echo "NoImage";
                        }
                      } 


                    ?>


                    <h4>{{ $key }}</h4>
                    <a href="javascript:void(0);" class="btn" id="dynamic_{{$val}}">View Gallary</a>
                    <script type="text/javascript">
                                // added
                        $('#dynamic_{!! $val !!}').on('click', function() {

                            $(this).lightGallery({
                                dynamic: true,
                                dynamicEl: [
                                <?php if(!empty($mediaData)){ 
                                    foreach($mediaData as $k => $v){ 
                                        if($v->gallery_id == $val){ ?>
                                        {
                                            "src": '{!! "/images/".$v->path !!}',
                                            'thumb': '{!! "/images/".$v->path !!}',
                                            'subHtml': '<h4>{{ $v->caption }}</h4>'
                                        },
                                <?php } } }?>
                                ]
                            })

                        });

                    </script>
                </div>
            </div>
            @endforeach
        @endif




</div>

【问题讨论】:

  • 那有什么问题?
  • 问题是当 i gt 空数组循环不继续时。
  • 这是事实,在遍历数组/集合时,如果为空则不会继续。您可以检查数组中每个集合的大小以确定值是否存在。
  • 如果我的数组中有两个计数为 null 或 notNull,我想要什么,我的循环运行两次。有可能吗?
  • 如果你得到第二个,那么它当然不是空的,但内部集合可以是空的

标签: php sql arrays laravel multidimensional-array


【解决方案1】:

在foreach之前检查array1是否为空,

   foreach($TestArr as $TestArr1) {
    if(count($TestArr1)){
      foreach($TestArr1 as $item) {
         if($item->gallery_id == $val && $item->is_thumb_image == 1) {
            echo "YesImage";
         }else{
             echo "NoImage";
         }
      }
    }else{
      echo "NoImage";
    }
  } 

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2019-08-10
    • 2017-03-15
    相关资源
    最近更新 更多