【问题标题】:How to compare attribute to next element's one如何将属性与下一个元素的属性进行比较
【发布时间】:2015-07-12 07:32:26
【问题描述】:

如何获取 foreach 中下一个 ORM 元素的值? 我需要这样的东西:

   $users = ORM::factory('Users')
       ->order_by('category', 'ASC')
       ->find_all();
    foreach($users as $user)
    {
       if($user->category != next($user->category))
       {
          echo 'Next category user';
       }
    }

【问题讨论】:

    标签: php kohana kohana-orm


    【解决方案1】:

    有时与下一个项目进行比较可能很困难(例如这些)。但是,与上一个相比通常很容易。

    例如像这样:

    $users = ORM::factory('Users')
       ->order_by('category', 'ASC')
       ->find_all();
    $previousCategory = null;
    foreach($users as $user)
    {
       if($user->category != $previousCategory)
       {
          echo 'Next category user';
       }
       $previousCategory = $user->category;
    }
    

    【讨论】:

      【解决方案2】:

      一种方法是手动寻找下一个元素,获取所需的值,然后重置回原来的位置。这很混乱,但它会做你想做的事:

      foreach($users as $user)
      {
         $current_key = $users->key();
         $next_category = $users->seek($current_key + 1) ? $users->current()->category : NULL;
         $users->seek($current_key);
      
         if($next_category && $user->category != $next_category)
         {
            echo 'Next category user';
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-12
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多