我在一个名为“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
)
)
如果你们有任何建议,我将不胜感激。谢谢!
在 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