我有一个使用循环计算1到15的代码,它的模式是螺旋形的。请帮我改变给定数组的输出而不是循环计数器中的数字。你可以看到它有5个数组我想随机选择array1到array5并以螺旋方式显示它。例如,它从array1到array3中随机选择,数组中从1到3的所有值都应该以螺旋形方式显示。谢谢!
function getSpiralArray($n) {
$array1 = ['1', '2', '3', '4', '5'];
$array2 = ['4', '5', '6', '7', '8'];
$array3 = ['5', '6', '7', '8', '9'];
$array4 = ['6', '7', '8', '9', 'a'];
$array5 = ['2', '3', '4', '5', '6'];
$pos = $n * $n - 1;
$count = $n;
$value = -$n;
$sum = -1;
do {
$value = -1 * $value / $n;
for ($i = 0; $i < $count; $i++) {
$sum += $value;
$result[$sum / $n][$sum % $n] = $pos--;
}
$value *= $n;
$count--;
for ($i = 0; $i < $count; $i++) {
$sum += $value;
$result[$sum / $n][$sum % $n] = $pos--;
}
} while ($count > 0);
return $result;
}
function PrintArray($array) {
for ($i = 0; $i < count($array); $i++) {
for ($j = 0; $j < count($array); $j++) {
echo str_pad($array[$i][$j],3,' ');
}
echo '<br/>';
}
}
$arr = getSpiralArray(4);
echo '<pre>';
PrintArray($arr);
echo '</pre>';