2011-03-12 115 views
0

我有一個.txt文件設置是這樣的:爆炸幾個換行符到多維數組與PHP

HAYLE08 
VALUE X 
VALUE Y 

BRUNO10 
VALUE X 
VALUE Y 

一個需要處理的多維數組是這樣的:

Array 
(
    [HAYLE08] => Array 
     (
      [0] => Value X 
      [1] => Value Y 
     ) 

    [BRUNO10] => Array 
     (
      [0] => Value X 
      [1] => Value Y 
     ) 

) 

讀取文件到PHP是沒有問題的,爆炸3線的不同塊很容易這樣:

$file = file_get_contents('test.txt'); 
$lines = explode("\n\n", $file); 

但是當然,這樣只會給我的第一步:

Array 
(
    [0] => HAYLE08 
VALUE X 
VALUE Y 
    [1] => BRUNO10 
VALUE X 
VALUE Y 

) 

我已經嘗試了不同的foreaches等循環或線爆炸來填充其他維度,但一切都是徒勞。我覺得有些愚蠢的問這樣一個簡單的問題,但即使經過研究,我似乎在這裏錯過了一些基本的數組邏輯。 謝謝!

回答

1

你幾乎在那裏。你確實想要使用另一個循環/爆炸。這樣的事情:

$lines = explode("\n\n", $file); 
$return = array(); 

foreach ($lines as $line) { 
    $items = explode("\n", $line); 
    $return[array_shift($items)] = $items; 
} 

print_r($return); 
+0

謝謝!這就像一個魅力。 – Jurgen 2011-03-12 23:42:09

1

爆炸塊後,你必須遍歷新的數組,並將其餘的字符串分解成它們自己的塊。

$tempArray = array(); 
foreach($lines as $line) 
{ 
    $chunks = explode("\n", $line); 
    for($i = 1; $i < sizeof($chunks); $i++) 
     $tempArray[$chunks[0]][] = $chunks[$i]; 
} 

未經測試的PHP代碼,但這應該適合您。 $tempArray將是你想要的數組。

+0

雖然我稍微喜歡foreach解決方案,這一個工作完美,以及謝謝! – Jurgen 2011-03-12 23:43:23