如何从 PHP 上的另一个文件访问二维数组?

问题描述 投票:0回答:1

我在一个名为“table.php”的文件中有一个名为 $lang2 的二维数组。提交 table.php 上的表单后,它会转到另一个我称为“process.php”的文件。我希望能够在 process.php 文件上遍历 $lang2。

在“table.php”上,我创建了这样的二维数组:

$lang2 = array_fill(0, count($items2), array_fill(0, 4, "e"));
$counter = 0;
foreach ($items2 as $item2) {
    $lang2[$counter][0] = $item2['localstring'];
    $lang2[$counter][1] = $item2['itemtype'];
    $lang2[$counter][2] = $item2['object_id'];
    $lang2[$counter][3] = $item2['local_id'];
    $counter++;
}

当我在“table.php”上使用 print_r 打印 $lang2 数组时,输出了该数组。但是,当我尝试在“process.php”上打印数组时,我的输出是

Array ()

我已将我的“table.php”文件包含在“process.php”中,并测试了其他变量是否可以从一个文件使用到另一个文件。我似乎无法让它适用于 2D 阵列。 $lang2 数组中的数据来自数据库。我试过制作一个没有来自数据库的数据的 2D 并且没有区别,所以我认为这不是问题所在。

我曾尝试调整代码,以便在提交表单时保持在同一页面上,但这似乎没有奏效。我也尝试制作 $lang2 的副本,以防万一数据库与它有关,但这并没有太大的区别。

我期望的是数组打印出来,就像我在“table.php”文件上打印它时那样。像这样的东西:

Array ( 
    [0] => Array ( 
        [0] => string1 
        [1] => 1 
        [2] => 1 
        [3] => 13 
    ) 
    [1] => Array ( 
        [0] => string2 
        [1] => 1 
        [2] => 3 
        [3] => 15 
    ) 
    [2] => Array ( 
        [0] => string3 
        [1] => 5 
        [2] => 1 
        [3] => 103 
    ) 
    [3] => Array ( 
        [0] => string4 
        [1] => 5 
        [2] => 4 
        [3] => 104 
    ) 
)

如果你们有任何建议,我将不胜感激。谢谢!

php multidimensional-array
1个回答
0
投票

在 table.php 上,您可以使用 json_encode 将 $lang2 数组作为隐藏输入包含在表单中,如下所示:

<input type="hidden" name="lang2" value="<?php echo htmlspecialchars(json_encode($lang2)); ?>">

在 process.php 上,您可以使用 json_decode 从 POST 数据中检索 $lang2 数组,如下所示:

$lang2 = json_decode($_POST['lang2'], true); // retrieve the $lang2 array from the hidden input
© www.soinside.com 2019 - 2024. All rights reserved.