带有previous和next元素的PHP foreach打印数组

Gol*_*die 1 php arrays foreach next

我有一个数组$ data,我想用foreach打印它($ data as $ detail).事情是我想在foreach内部打印上一个和下一个元素.像这样的东西:

$data = array(1,2,3,4,5,6,7,8);

// foreach result should look like this
8,1,2
1,2,3
2,3,4
3,4,5
4,5,6
5,6,7
6,7,8
7,8,1
Run Code Online (Sandbox Code Playgroud)

Fro*_*y Z 5

<?php

$data = array(1,2,3,4,5,6,7,8);
$count = count($data);

foreach($data as $index => $number)
{
  $previous = $data[($count+$index-1) % $count]; // '$count+...' avoids problems
                                                 // with modulo on negative numbers in PHP
  $current = $number;
  $next = $data[($index+1) % $count];

  echo $previous.", ".$current.", ".$next."\n";
}
Run Code Online (Sandbox Code Playgroud)

关于负数的模数:http://mindspill.net/computing/cross-platform-notes/php/php-modulo-operator-returns-negative-numbers.html