2016-05-10 2 views
1

Ниже приведена версия print_r моего массива ($ hamle). Как видите, индекс (80) пуст, или там есть конец строки или похожий символ. Я попробовал много вариантов, чтобы удалить его, если он существует и пуст, но не смог этого сделать. Я сильно думаю, что он читает пустую строку во время цикла «читать пока». Он не отображается во всех файлах. Иногда это появляется. Может ли кто-нибудь подумать о шикарном выходе?Как удалить последний элемент массива, если он пуст

Array ([0] => 1.b4 [1] => d5 [2] => 2.Bb2 [3] => Qd6 [4] => 3.a3 [5] => e5 [6] => 4.e3 [7] => a5 [8] => 5.b5 [9] => Nf6 [10] => 6.c4 [11] => Bg4 [12] => 7.Be2 [13] => Bxe2 [14] => 8.Qxe2 [15] => Nbd7 [16] => 9.d4 [17] => dxc4 [18] => 10.Nf3 [19] => e4 [20] => 11.Ne5 [21] => Nb6 [22] => 12.Nd2 [23] => Qe6 [24] => 13.O-O [25] => Bd6 [26] => 14.Nexc4 [27] => Nxc4 [28] => 15.Nxc4 [29] => O-O [30] => 16.Rfc1 [31] => Be7 [32] => 17.a4 [33] => Nd5 [34] => 18.Ba3 [35] => Bb4 [36] => 19.Qb2 [37] => Rfc8 [38] => 20.Bxb4 [39] => axb4 [40] => 21.Nd2 [41] => c6 [42] => 22.b6 [43] => Qe7 [44] => 23.Rc5 [45] => Ra6 [46] => 24.a5 [47] => g6 [48] => 25.Nb3 [49] => Rca8 [50] => 26.Rac1 [51] => Kg7 [52] => 27.Qd2 [53] => Qd6 [54] => 28.R1c4 [55] => Rd8 [56] => 29.Rxb4 [57] => Nxb4 [58] => 30.Qxb4 [59] => Qe7 [60] => 31.h3 [61] => Rd5 [62] => 32.Kf1 [63] => Ra8 [64] => 33.Qa4 [65] => Qd6 [66] => 34.Ke2 [67] => Kf8 [68] => 35.Rxd5 [69] => cxd5 [70] => 36.Nc5 [71] => Ke7 [72] => 37.Qb5 [73] => Rb8 [74] => 38.Kd2 [75] => f5 [76] => 39.Kc3 [77] => g5 [78] => 40.Kb4 [79] => 1-0 [80] =>) 

Код =>

while(! feof($file)) 
    { 


$n=$n+1; 
      $hamle1= fgets($file); 
    $hamle1 = str_replace("\n", "", $hamle1); 
    $hamle1 = str_replace("\r", "", $hamle1); 
    $hamle1 = trim($hamle1); 
    $hamle1 = explode(" ", $hamle1); 

     foreach($hamle1 as $item) 
    { 
     $hamle[] = $item; 
    } 
+1

Пожалуйста, ваш код. Кроме того, пригодится ваш массив. – Amous

+1

@Dagon ... Спасибо, я попробую и дам вам знать ... С уважением – Otag

+1

Hello @Dagon Пустой элемент все еще существует ... С уважением – Otag

ответ

4

array_filter удалит пустые записи

$hamle = array_filter($hamle); 
+0

Perfect !! @wrongstars .. Спасибо! – Otag

1

Чтобы удалить последний элемент массива, если он пустой, то используйте следующий код.

// get the last element of array 
if(trim(end($hamle)) == '') 
{ 
    // Remove last element from array 
    array_pop($hamle) ; 
} 

Просьба указать ниже ссылки, чтобы понять функции, которые используются в приведенном выше коде.

trim

end

array_pop

Смежные вопросы