Laravel:当数组为空时数组循环的集合

Posted

技术标签:

【中文标题】Laravel:当数组为空时数组循环的集合【英文标题】:Laravel : Collection Of array loop when array is null 【发布时间】: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,我想要什么,我的循环运行两次。有可能吗? 如果你得到第二个,那么它当然不是空的,但内部集合可以是空的 【参考方案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";
    
   

【讨论】:

以上是关于Laravel:当数组为空时数组循环的集合的主要内容,如果未能解决你的问题,请参考以下文章

mybatis如何判断空时不循环数组是不是为空?

MongoDb 仅当数组不为空时才在数组中添加字段

当过滤器为空时,它返回空数组

当数组为空时扑出显示空间[]

laravel 查询数组请求时

vue中当数据为空时的处理