while recorrer multidimensional index elementos elemento buscar asociativo array agregar php arrays foreach next

php - multidimensional - recorrer array laravel



Matriz de impresiĆ³n foreach de PHP con elemento anterior y siguiente (3)

Mismo resultado hecho de manera diferente:

<?php $data = range(1,16); $count=count($data); $ret=''''; for($i=0;$i<$count;$i++){ $ret.=($i==0)?$data[$count-1].'','':$data[$i-1].'',''; $ret.=$data[$i].'',''; $ret.=($i+1>=$count)?$data[$count-$i-1]:$data[$i+1].''<br>''; } echo $ret; ?> Result: 16,1,2 1,2,3 2,3,4 3,4,5 4,5,6 5,6,7 6,7,8 7,8,9 8,9,10 9,10,11 10,11,12 11,12,13 12,13,14 13,14,15 14,15,16 15,16,1

Tengo una matriz de datos $ y quiero imprimirla con foreach ($ data as $ detail). La cosa es que quiero dentro de foreach para imprimir el elemento anterior y siguiente. Algo como esto:

$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


Podrías ir:

$data = array (1,2,3,4,5,6,7,8); $count = count ($data); foreach ($data as $key => $current) { if (($key - 1) < 0) { $prev = $data[$count - 1]; } else { $prev = $data[$key - 1]; } if (($key + 1) > ($count - 1)) { $next = $data[0]; } else { $next = $data[$key + 1]; } echo $prev . '', '' . $current . '', '' . $next . "/n";

O si la brevedad es un problema:

$count = count ($data); foreach ($data as $i => $current) { $prev = $data[(($i - 1) < 0) ? ($count - 1) : ($i - 1)]; $next = $data[(($i + 1) > ($count - 1)) ? 0 : ($i + 1)]; echo $prev . '','' . $current . '','' . $next . "/n"; }