Php范围:在循环外无法访问数组值

时间:2017-05-19 10:30:19

标签: php html arrays multidimensional-array scope

我的代码:

<?php
$file="./Speed10.txt";
$document=file_get_contents($file);
$rows = explode ('(', $document);

$a[$r][$c];
for($r=0; $r<9103; $r++){ //1903 rows in text file     

    $a[$r][$c]; // Array declared here - doesnt solve problem

    for($c=0; $c<103; $c++){
        //$a[$r][$c] = rand();
       // print_r($a[$r][$c]);
    }
}
foreach ($rows as $ri => $row) {
    $a[$ri][$c] = explode (';', $row);
    //XXXXXXXXXXXXX    
}
print_r($a[1][$c]); // NOT PRINTING*
?>

我有一个2D数组,如上所示,它将文本文件分为行和列。 那部分工作得很好,但我尝试打印出一行的所有单元格,它不打印。

但是,如果我将print_r行移动到X的位置,它就可以工作(尽管它是在循环中打印出来的)。听起来像是一个范围问题,但我无法弄清楚是什么。我尝试将数组初始化为全局变量但是没有修复它。

1 个答案:

答案 0 :(得分:0)

最后,您的脚本“按原样”执行,103将为$a[1],但0中的元素只会从102设置为tJava -> tMSSQLRow (Which calls "exec <Stored Procedure> <input parameter>") -> tParseRecordSet -> tJavaFlex }。

所以你访问一个不存在的索引,因此它什么都不打印。

我创建了slightly modified example,清楚地显示了问题。

  

注意:未定义的偏移量: [...] 中的 15