2011-09-12 2 views
2

이 배열은 다음과 같습니다. $ products = array (2151, 2563, 2015, 1986, 1985);배열 get next/previous elements

내가 원하는 것은 id를 전달할 때마다 다음 항목과 이전 항목을 반환하는 함수를 작성하는 것입니다. 예를 들어 2563-ID를 말하면 응답이 2151 & 2015가됩니다.

모든 의견을 환영합니다.

+0

어디서 ID를 얻을 수 있습니까? 그들 중 몇 명입니까? –

답변

6
$index = array_search($id, $products); 
if($index !== FALSE) 
{ 
    $next = $products[$index + 1]; 
    $previous = $products[$index - 1]; 
} 

$products[$index +/- 1]은 항상 존재하지 않으므로 검사를 수행하십시오!

+1

일반적으로 먼저 체크를 한 다음'$ index +/- 1' 또는'false +/- 1'을 계산하십시오. – duedl0r

+0

@ duedl0r : 감사합니다. 지금 답변을 수정했습니다. 나는'array_search()'의 반환 값을 고려하지 않았다. 내가 참조했던 수표는'$ next'와'$ previous'에 대한 것이 었습니다. –

+0

나는'$ products'가'$ index +/- 1'에 설정되어 있는지 계속 확인해야합니다. – Yoshi