- array_reverse: documentation ( source)
- array_slice: documentation ( source)
- array_merge: documentation ( source)
- array_fill: documentation ( source)
- range: documentation ( source)
- join: documentation ( source)
<?php
$radius = 3;
$blank = ' ';
for ($i = 1, $diameter = $radius * 2 - 1; $i <= $diameter; $i++) {
$nums = range(1, $i);
$nums = array_merge($nums, array_reverse(array_slice($nums, 0, -1)));
$blanks = array_fill(0, $diameter - $i, $blank);
$row = array_merge($blanks, $nums, $blanks);
echo join($row);
}