PHP中的数组消失

PHP中的数组消失,php,arrays,codeigniter,static,Php,Arrays,Codeigniter,Static,这是我的密码: public function pgn_oku() { $n=-1; $x=-1; $detay=""; $hamle=""; $file = fopen("D:\satranc\bielcki\kaleli_roklu_vezirli.pgn","r"); while(! feof($file)) { $n=$n+1; $detay[$n]= fgets($file); $de

这是我的密码:

public function pgn_oku() {
    $n=-1;
    $x=-1;  
    $detay="";
    $hamle="";
    $file = fopen("D:\satranc\bielcki\kaleli_roklu_vezirli.pgn","r");

    while(! feof($file)) {
        $n=$n+1;
        $detay[$n]= fgets($file);
        $detay[$n]=trim($detay[$n]);
        if (empty($detay[$n])) {
            $x=$x+1;
            $hamle1[$x]= fgets($file);
            $hamle = explode(' ', $hamle1[$x]);
            print_r(array_values($hamle))."<br>";
        } else  {
            echo $detay[$n]."<br>";
            echo $n."<br>";
        }
    }

    print_r(array_values($detay))."<br><br>";
    echo "<br><br>";
    print_r(array_values($hamle))."<br>";
    echo "<br><br>";

    fclose($file);
}
问题是数组
$hamle
打印在上面,而不是下面。我玩弄了一个
静态
声明,但没有用。任何帮助都将不胜感激

注意:我使用的是CodeIgniter框架

我正在阅读的文件是:

[Event "?"] [Site "?"] [Date "????.??.??"] [Round "?"] [White "?"] [Black "?"] [Result "*"] 1.b4 c5 2.bxc5 d6 3.cxd6 Qxd6 4.e3 Nf6 5.c4 b5 6.cxb5 e5 7.b6 Be7 8.bxa7 O-O 9.axb8=Q Bd7 10.Qbb3 Rab8 11.Qbc2 Rfd8 12.Qe2 Rdc8 13.Qcd3 Qe6 14.Qf3 Qd5 15.Qfxd5 Nxd5 16.Qxd5 Rxc1+ 17.Ke2 Rbxb1 18.Qxd7 Rxa1 19.Nf3 Rxa2 20.Qxe7 Rcc2 21.h4 Rcb2 22.h5 Rb8 23.h6 Rba8 24.Rh5 R2a7 25.Qxe5 *

我找到的答案如下=>代码可以工作,它一直到要读取的文件的末尾,在最后一刻读取最后一行,该行没有出现在“复制和粘贴”中(我想它只是一个字符) 如下所示的中断会产生效果=>

 $hamle = explode(' ', $hamle1[$x]);
    $GLOBALS['hamleg'] = $hamle;

         break;

在我看来,
if(empty($detay[$n]))
从来都不是
true
,因此
$hamle
永远不会得到新值。
 $hamle = explode(' ', $hamle1[$x]);
    $GLOBALS['hamleg'] = $hamle;

         break;