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)
<?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