$t= creaArray(4, 6);
echo array_to_table($t);
function creaArray($ancho, $alto) {
for ($i = 0; $i < $alto; $i++) {
for ($j = 0; $j < $ancho; $j++) {
$c[$i][$j] = $j + $i * $ancho;
}
}
return $c;
}
function cuadrado_magico($ancho){
if ($ancho%2==0) $ancho--;
$posy=0;
$posx=floor($ancho/2);
$cont=1;
while ($cont<=$ancho**2){
if (empty($c[$posy][$posx])){
$c[$posy][$posx]=$cont++;
$posx=($posx+1)%$ancho;
$posy=($posy-1+$ancho)%$ancho;
}
else{
$posx=($posx-1+$ancho)%$ancho;
$posy=($posy+2)%$ancho;
}
}
return $c;
}
$c= cuadrado_magico(3);
echo array_to_table($c);
$c= cuadrado_magico(5);
echo array_to_table($c);