2017-02-26 108 views
1

使用文件與此內容:爲什麼最後一個數組列看起來像這樣?

1 2 3 4 5 0 
6 7 8 9 10 0 
11 12 13 14 15 1 
16 17 18 19 20 1 

我試試這個代碼來創建二維數組並獲得最後一列:

<?php 

$tab = array(); 
$lastColumn=array(); 
$file = file('test.txt'); 
foreach ($file as $item) { 
    array_push($tab, explode(' ', $item)); 
}; 

foreach ($tab as $item) { 
    array_push($lastColumn,end($item)); 
}; 
var_dump($lastColumn); 

但去年cloumn看起來是這樣的:

array(4) { [0]=> string(3) "0 " [1]=> string(3) "0 " [2]=> string(3) "1 " [3]=> string(1) "1" } 

所有除了最後一個字符串(字符串(1)和後面沒有空格)之後,值具有字符串(3)和空格

我需要在最後一列沒有空格和字符串(1)的所有值。有人可以幫助我嗎?

+1

你是不是刪除換行符並不能看到他們,但他們在那裏 – charlietfl

+0

我該怎麼辦呢? – Marcin

+1

刪除每行上的'\ n',然後爆炸 – charlietfl

回答

0

\n表示的文件中有需要刪除的換行符。

嘗試改變:

foreach ($file as $item) { 
    array_push($tab, explode(' ', $item)); 
}; 

喜歡的東西:你所描述

foreach ($file as $item) { 
    array_push($tab, explode(' ', str_replace('\n','',$item))); 
}; 
0

一切通常被稱爲編程whitespace。也就是說,字符串中存在的字符與字符的方式不可見。

PHP有一個內置的函數處理這個叫trim()其中包括所有這些字符:

該函數返回空白的字符串從 剝離開始,海峽結束。如果沒有第二個參數,trim()將 去掉這些字符:

「」(ASCII 32(0x20)),一個普通的空格。

「\ t」(ASCII 9(0x09)),一個選項卡。

「\ n」(ASCII 10(0x0A)),換行(換行)。

「\ r」(ASCII 13 (0x0D)),回車符。

「\ 0」(ASCII 0(0x00)),NUL字節。 「\ x0B」(ASCII 11(0x0B)),一個垂直標籤。

所以

foreach ($tab as $item) { 
    array_push($lastColumn,end($item)); 
}; 

變爲:

foreach ($tab as $item) { 
    array_push($lastColumn,end(trim($item))); 
}; 
相關問題