2017-06-24 35 views
1

我試圖分裂一個日誌文件的每一行,而不是每一行。目前我正在使用preg_split換行符,這爲每行提供了一個新的數組元素。我正嘗試按第n行分割。PHP分裂成陣列的每第n行

$str = file_get_contents('filename'); 
$arr1 = preg_split("/\r\n|\n|\r/", $str, -1, PREG_SPLIT_NO_EMPTY);  

回答

2

你也可以嘗試類似的東西?

$chunks = array_chunk(file($filename), 5); 
+0

這應該完全適合我。如果你可以擴展你的解釋。 Array_chunk()根據第二個參數將數組拆分爲n個數組。爲什麼在這個例子中它是基於文件換行符來分割? – Rthomas529

+0

對不起 - 不得不停下來吃晚飯。是的 - 使用'file'獲取有問題的文件的內容並將其轉換爲數組。 array_chunk是一個內置的PHP函數,用於將數組分割爲一系列長度爲n的數組。有很多選項可以設置(標記)到'file',但我認爲默認情況下它將文件內容分割爲一個理想的換行符,因爲這或多或少是你用正則表達式所做的。 – RamRaider

1

如何

/(.*(\r\n|\n|\r)){5}/g 

這裏如果您想通過2線,而不是分裂5您可以更改{5} 2?

+0

這也是一個不錯的選擇。希望我能夠正確地標記這兩個答案;) – Rthomas529