【问题标题】:php - matrix - where I am making a mistake?php - 矩阵 - 我在哪里犯了错误?
【发布时间】:2013-04-06 16:11:01
【问题描述】:

创建一个具有以下输出的程序:

00000000
b 00000000
c 00000X00
d 00000000
e 00000000
f 000X0000
g 00000000
h 00000X00
12345678

用户在程序开始时输入二维数组。根据这个序列(坐标)在桌子上绘制 X。

条件: 必须使用数组和循环。

我 18 岁,两周前开始学习 php。我在完成这项任务时遇到了麻烦。谁能帮我 ?谢谢!

对不起!

这就是我所做的:

<?php
$input = array(2 => array(5),5 => array(3),7 => array(6));
$range = array('a','b','c','d','e','f','g','h');
$length = 8;

$output = '';
foreach($range as $index => $letter)
{
$output .= "$letter ";

for($i = 0; $i < $length; ++$i)
{
$output .= (array_key_exists($index, $input) && in_array($i, $input[$index])) ? 'X' : '0';
}

$output .= "\n";
}

echo $output;
?>

我得到了这个输出:

00000000
b 00000000
c 00000X00
d 00000000
e 00000000
f 000X0000
g 00000000
h 000000X0

而不是这个:

00000000
b 00000000
c 00000X00
d 00000000
e 00000000
f 000X0000
g 00000000
h 00000X00
12345678

我哪里出错了?

【问题讨论】:

  • 我们不是来做你的项目的,只是帮助你解决问题。只要你能符合 * 常见问题解答中列出的标准
  • 那么,你的问题是什么?
  • 我已经编辑了我的帖子...我必须获得的代码与我获得的代码不同..

标签: php arrays loops matrix


【解决方案1】:

【讨论】:

  • 嗯...好的,我会试试的。就一件事。当我在浏览器中打开它时,我会在一行中获得代码。如何把它放在一个新的行?
    ?
  • @МаркоЛучић 将 $output .= "\n"; 替换为 $output .= "&lt;br&gt;\n";
【解决方案2】:
<?php
$input = array(2 => array(5),5 => array(3),7 => array(5));
$range = array('a','b','c','d','e','f','g','h');
$length = 8;

$output = '';
$x='';
foreach($range as $index => $letter)
{
    $output .= "$letter ";
    for($i = 0; $i < $length; ++$i)
    {
        $output .= (array_key_exists($index, $input) && in_array($i, $input[$index])) ? 'X' : '0';
    }

    $output .= "\n";
    $x.= 1+$index;
}

$output .= $x;
echo $output;

?>

这将输出

a 00000000
b 00000000
c 00000X00
d 00000000
e 00000000
f 000X0000
g 00000000
h 00000X00
12345678

【讨论】: