如何创建多维数组?

时间:2019-04-20 20:00:44

标签: php arrays

我正在观看一个教程视频,其中包含以下代码:

  if ( isset($_POST['message']) ) {
    if ( !isset ($_SESSION['chats']) ) $_SESSION['chats'] = Array();
    $_SESSION['chats'] [] = array($_POST['message'], date(DATE_RFC2822));
    header("Location: index.php");
    return;
  }

但是我对这一行感到困惑:

$_SESSION['chats'] [] = array($_POST['message'], date(DATE_RFC2822));

我不知道= array($_POST['message'], date(DATE_RFC2822));是什么意思? $_SESSION是二维数组吗?还是只有2个元素的一维数组?如果是一维数组,如何编写二维数组?

2 个答案:

答案 0 :(得分:1)

如果您想知道代码的每个执行步骤会发生什么,最好为此使用调试器,例如XDebug。您可以放置​​一个断点,并逐行浏览代码,查看变量的状态。
enter image description here

另一种方法是在该行之后放置var_export($_SESSION);并检查输出:

$_SESSION = array(
    'chats' => array(
        0 => array(
            0 => 'gdf',
            1 => 'Sat, 20 Apr 2019 21:08:26 +0100',
        )
    )
)

在您的情况下,超全局数组$_SESSION包含一个插入有键“聊天”的数组,其中包含另一个项目数组,即array($_POST['message'], date(DATE_RFC2822))

是的,您的示例中的$_SESSION将是多维数组(3-D)。要在PHP中创建多维数组,需要输入另一个数组作为外部数组的元素。就像您在示例中所做的一样。

答案 1 :(得分:1)

这样想。 $ _SESSION ['chats']是一个包含多个数组的数组,每个数组都有一条消息和一个日期。在PHP中,有时我喜欢输出数组结构以查看实际情况。您应该执行以下操作来检查数组树(仅在不使用XDebug这样的外部插件的情况下进行培训):

echo '<pre>'; print_r($_SESSION['chats']); exit();

输出看起来像这样,更具可读性。一旦使用了足够的阵列,您将不再需要它。

[chats] => Array
    (
        [0] => Array
            (
                [0] => message
                [1] => Sat, 20 Apr 2019 13:10:09 -0700
            )

    )