ГлавнаяБлогПредыдущий следующий элемент массива по кругу [php]

Предыдущий следующий элемент массива по кругу [php]

Рамиль Юналиев
Рамиль Юналиев
E-Commerce Lead
30 октября 2012 г.
1 мин чтения

Для формирования ссылок на детальных страницах нужно искать предыдущий и следующий элемент для построения url.

Решение: собираем все ID в массив, ищем соседние элементы. Поддерживается циклический переход (последний элемент ведёт к первому).

// массив с ID
$ar_ElementID = array();
 
// текущий ID (должен присутствовать в $ar_ElementID)
$i_CurrentID = 777
 
// находим текущий ключ
$i_KeyCurrent = array_search($i_CurrentID, $ar_ElementID);
 
// кол-во элементов в массиве
$i_CountElement = count($ar_ElementID);
 
/* коротко */
 
// следующий ID	
$i_NextID = ( $i_KeyCurrent !== ($i_CountElement -1) ) 
	? $ar_ElementID[$i_KeyCurrent + 1] : 0;
 
// предыдущий ID
$i_PrevID = ( $i_KeyCurrent == 0 ) 
	? $ar_ElementID[$i_CountElement - 1] : $ar_ElementID[$i_KeyCurrent - 1];
 
/* длинно */
 
// следующий ID	
if($i_KeyCurrent !== ($i_CountElement -1) )
{
	$i_NextID = $ar_ElementID[ $i_KeyCurrent + 1 ];
}	
else 
{
	$i_NextID = 0;
}	
	
// предыдущий ID
if($i_KeyCurrent == 0 )
{
	$i_PrevID = $ar_ElementID[$i_CountElement - 1];
}	
else
{
	$i_PrevID = $ar_ElementID[$i_KeyCurrent - 1];
}