PHP foreach 循环中的数组范围


Array scope within PHP foreach loop

我正在学习PHP,并且一直在为如何正确编写代码而苦恼。 我有一个接受用户输入的文本区域,该输入是由空格分隔的几行坐标(PT#北向东)。

我让表单将文本区域输入传递给 php 脚本来处理它。

我可以让一个 foreach 循环来做我想做的事情,但仅限于 foreach 循环的本地,变量不会被传递到循环的外部。

我知道这是一个全局变量范围的问题,对于我的生活,我无法解决这个问题......

下面是我的PHP代码,我省略了HTML表单,我没有问题,并且知道文本区域正在正确传递。

**Sample data that I am inputing:
1 728258.24000 774337.29700
2 728232.15735 774277.54650
3 728326.39614 774216.82428**
<?php
$i = 0;
$j = 0;
//The code below explodes my textarea into a string array
//of separated lines.
$textArea = explode("'r", $_POST['textArea']);
$textNum = array();
//The code below works internally, but the values remain here
//I wanted to get them to the variables below so I can do work
//to them.
foreach ($textArea as $textRows) {
    //The code below explode the lines into elements separated by a space
    $textRow = explode(" ", $textRows);
    foreach ($textRow as $textItem) {
    $textNum[i][j] = $textItem;
    //The code below works within a local context
    echo "(" . $i . " " . $j . ")" . $textNum[i][j] . "</br>";
    $j++;
    }
    $i++;
    $j = 0;
}
//The code below is not receiving values from the foreach loop
//I know this has something to do with the variable scope
//I must be way off in my approach any help would be appreciated!
echo "</br>";
echo "</br> 0 0 " . $textNum[0][0];
echo "</br> 0 1 " . $textNum[0][1];
echo "</br> 0 2 " . $textNum[0][2];
echo "</br> 1 0 " . $textNum[1][0];
echo "</br> 1 1 " . $textNum[1][1];
echo "</br> 1 2 " . $textNum[1][2];
echo "</br> 2 0 " . $textNum[2][0];
echo "</br> 2 1 " . $textNum[2][1];
echo "</br> 2 2 " . $textNum[2][2];
echo "</br> 3 0 " . $textNum[3][0];
echo "</br> 3 1 " . $textNum[3][1];
echo "</br> 3 2 " . $textNum[3][2];
?>

我希望我已经解释得足够好了,并感谢我能得到的任何帮助! 谢谢!

第二个循环中出现错误:

$textNum[i][j] = $textItem;

必须是:

$textNum[$i][$j] = $textItem;

您需要在变量之前加上$,即$textNum[$i][$j]而不是$textNum[i][j],此外,最好初始化$i$j并将它们设置为0foreach循环之前。