如何在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';
}
}
与下一项进行比较有时会很困难(就像这些)。然而,比较前一个通常是很容易的。
。这样的:
$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;
}
一种方法是手动查找下一个元素,获取所需的值,然后重置回原来的位置。它很乱,但它会做你想做的:
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';
}
}