【发布时间】:2014-08-10 22:11:39
【问题描述】:
我有数组和这个函数
$array = array(array(00,01,02,03), array(10,11,12,13), array(20,21,22,23));
function spiral($xSize, $ySize, array $matrix) {
$k = 0;
$l = 0;
$xSize--;
$ySize--;
while ($k <= $xSize && $l <= $ySize) {
for ($i = $l; $i <= $ySize; ++$i) {
print($matrix[$k][$i] + " ");
}
$k++;
for ($i = $k; $i <= $xSize; ++$i) {
print($matrix[$i][$ySize] + " ");
}
$ySize--;
for ($i = $ySize; $i >= $l; --$i) {
print($matrix[$xSize][$i] + " ");
}
$xSize--;
for ($i = $xSize; $i >= $k; --$i) {
print($matrix[$i][$l] + " ");
}
$l++;
}
}
但不工作。函数必须返回 this 00 01 02 03 13 23 22 21 20 10 11 12
但是返回这个 01 23 13 23 22 21 20 10 11 12 11
【问题讨论】:
-
这个函数怎么调用?
-
spiral(4, 5, array),其中 4 为行,5 为列,数组向上
-
$matrix是一个一维数组,但您使用$matrix[$k][$i]访问多个维度。 -
true,但现在返回这个 01 23 13 23 22 21 20 10 11 12 11 for $array = array(array(00,01,02,03), array(10,11,12, 13), 数组(20,21,22,23));
-
请用这个新代码更新您的问题,添加当前输出并将 30,31,32,33,34 部分再次添加到数组中。
标签: php