【问题标题】:Why can I not display a two dimensional array为什么不能显示二维数组
【发布时间】:2021-12-28 23:10:08
【问题描述】:

我是 PHP 新手,我正在通过书本学习 PHP,但我无法使用 echo 变量显示二维数组。每次我尝试它总是抛出这个错误,Warning: Uninitialized string offset 2 in C:\xampp\htdocs\test1.php on line 19强>。正如我所说,我不知道这意味着我已经搜索过,但它仍然没有显示。 我的代码

<?php //test1.php
echo $lang[2]; //Displays Javascript not CSS reason above
$ttt = array(
            array('x', '', 'o'),
            array('o', 'o', ''),
            array('x', 'o', '')
            ); //you can stack arrays like this
echo $ttt[0][1][2]; //displaying tick tack toe
?>

第 19 行是echo $ttt[0][1][2]; //displaying tick tack toe

【问题讨论】:

  • 您有一个二维数组,但您正在尝试访问 第三个 维度。由于$ttt[0][1] 是一个字符串,PHP 将此第三维解释为空字符串'' 中的字节偏移量2,但该字符串并没有那么长,因此出现错误。
  • 我不明白 "Since $ttt[0][1] is a string PHP 将此第三维解释为字符串 'o' 中 2 的字节偏移量,但字符串不是这么长,因此错误。”意思是
  • 等等,你是不是想用echo $ttt[0][1][2];打印整个井字棋网格?

标签: php arrays


【解决方案1】:

你好,这只是一个双,所以不需要全部三个,只需使用

echo $ttt[0][2];

如果你想回显整个井字游戏,你需要像这样回显每个值

    echo "<table><tr><td>{$ttt[0][0]}</td><td>{$ttt[0][1]}</td><td>{$ttt[0][2]}</td></tr>
<tr><td>{$ttt[1][0]}</td><td>{$ttt[1][1]}</td><td>{$ttt[1][2]}</td></tr>
<tr><td>{$ttt[2][0]}</td><td>{$ttt[2][1]}</td><td>{$ttt[2][2]}</td></tr></table>"; //displaying tick tack toe

不要忘记在编程中我们从 0 开始

【讨论】:

  • 我试过了,但它只是显示一个“o”
  • 这是应该发生的,因为你回显了第一个数组的第三个值,请注意我们总是从 0 开始
  • 我明白了,我看了一个视频并查看了您的问题并修复了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 2017-05-04
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多