PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php function render( $num, $strLength, $result, $hor, $ver, $currentNum, $horisontal = true, $reverse = false ) { foreach(range(1, $strLength) as $b) { if ($horisontal && !$reverse) { $result[$ver][$hor] = $currentNum; if ($b < $strLength) $hor++; } elseif ($horisontal && $reverse) { --$hor; $result[$ver][$hor] = $currentNum; } elseif (!$horisontal && $reverse) { $ver--; $result[$ver][$hor] = $currentNum; if ($b === $strLength) $hor++; } elseif (!$horisontal && !$reverse) { $ver++; $result[$ver][$hor] = $currentNum; } $currentNum++; } $reverseNext = $reverse; if ($horisontal && !$reverse) { $horisontalNext = false; } elseif ($horisontal && $reverse) { $horisontalNext = false; } elseif (!$horisontal && $reverse) { $horisontalNext = true; $reverseNext = false; } elseif (!$horisontal && !$reverse) { $horisontalNext = true; $reverseNext = true; } return ($currentNum > $num * $num) ? $result : render( $num, ($horisontal ? $strLength - 1 : $strLength), $result, $hor, $ver, $currentNum, $horisontalNext, $reverseNext ); } /*var_export(render( 5, 5, [], 0, 0, 1 ));*/ $num = 5; $strLength = $num; $result = []; $hor = 0; $ver = 0; $currentNum = 1; foreach (render($num, $strLength, $result, $hor, $ver, $currentNum) as $i) { ksort($i); $maxSymbLenght = strlen((string)($num*$num)); foreach ($i as $j) { $symbLenght = strlen((string)$j); $whiteSpace = 1; if ($symbLenght < $maxSymbLenght) { $whiteSpace = $maxSymbLenght - $symbLenght + 1; } echo str_repeat(' ', $whiteSpace) . $j; } echo "\n"; }
Show:  
Copy Clear