3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php // Para testear tu código en nuestros servidores debes mantener la estructura expuesta abajo. // Eres libre de crear nuevas funciones/procedimientos. // Recuerda que el código que escribas podrá ser visto por las empresas a las que te postules. ?> <?php $relieve = [[8, 9, 2, 2, 3, 5], [9, 8, 3, 2, 4, 5], [9, 7, 2, 2, 4, 3], [9, 9, 2, 4, 4, 3], [9, 2, 3, 4, 3, 5]]; var_dump(celdas_vecinas($relieve, 0, 1)); // Representación gráfica // 8 9 2 2 3 5 // 9 8 3 2 4 5 // 9 7 2 2 4 3 // 9 9 2 4 4 3 // 9 2 3 4 3 5 function encontrar_bordes($relieve){ $resp = []; for($i=0;$i<count($relieve);$i++){ for($j=0;$j<count($relieve[$i]);$j++){ $resp[$i][$j] = 0; } } return $resp; // return [[1, 0, 1, 1, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 1, 1, 0, 1], [0, 0, 1, 0, 0, 1], [0, 1, 0, 0, 1, 0 ]]; } function celdas_vecinas($relieve, $i, $j){ $celdas = []; // si la celda no existe, regresamos. if(!celda_existe($relieve, $i, $j)){ return null; } if(celda_existe($relieve, $i-1, $j-1)) { $celdas[] = $relieve[$i-1][$j-1]; } if(celda_existe($relieve, $i-1, $j)) { $celdas[] = $relieve[$i-1][$j]; } if(celda_existe($relieve, $i-1, $j+1)) { $celdas[] = $relieve[$i-1][$j+1]; } if(celda_existe($relieve, $i, $j-1)) { $celdas[] = $relieve[$i][$j-1]; } if(celda_existe($relieve, $i, $j+1)) { $celdas[] = $relieve[$i][$j+1]; } if(celda_existe($relieve, $i+1, $j-1)) { $celdas[] = $relieve[$i+1][$j-1]; } if(celda_existe($relieve, $i+1, $j)) { $celdas[] = $relieve[$i+1][$j]; } if(celda_existe($relieve, $i+1, $j+1)) { $celdas[] = $relieve[$i+1][$j+1]; } //devolvemos los valores de las celdas vecinas return $celdas; } // verificar que una celda existe function celda_existe($arreglo, $x, $y){ if(!array_key_exists($x, $arreglo)){ return false; }elseif(!array_key_exists($y, $arreglo[$x])){ return false; }else{ return true; } } ?>
based on 033hi
Output for 5.5.0 - 7.2.6
array(5) { [0]=> int(8) [1]=> int(2) [2]=> int(9) [3]=> int(8) [4]=> int(3) }