2012-08-06 110 views
0

我正在使用file_get_contents()來導入文本文件。 在文本文件,格式變爲如下(舉例):PHP爆炸多維數組

3434,83​​,8732722
834,93,4983293
9438,43933,34983

等等...基本上它遵循以下模式:整數,逗號分割它,第二個整數,另一個逗號分割它,第三個整數,然後一個新行開始。我需要將這個格式轉換爲相應的格式。換句話說,我會有一個3列表格,文本文件中的每一行都是表格中的新行。

這個必須轉碼成一個簡單的HTML表<表> <TR>和<TD>

我從來沒有與多維數組和拆分文本與合作。這就是我尋求幫助的原因。對此,我真的非常感激! :)

+0

我所能做的就是使用explode(「\ n」,$ file);除此之外,我不知道如何再次拆分它,也沒有將它整理成一張整潔的表格。 – Bren 2012-08-06 07:28:10

+0

如果你知道如何遍歷一個循環('foreach'),那麼你可以自己做,如果你考慮它:) – JamesHalsall 2012-08-06 07:28:48

+0

我實際上使用了一個foreach循環,我沒有得到我所得到的結果期待。我一直在這裏坐了4個半小時,看起來很簡單,但似乎無法得到它。我越來越多地改變我的代碼,它變得越來越混亂,我開始從頭開始多次在我花時間修改這段代碼的時間內。 – Bren 2012-08-06 07:31:11

回答

0
<?php 
    $file = 'path/to/file.txt'; 
    echo '<table>'; 
    while(!feof($file)) { 
     $line = fgets($file); 

     echo '<tr><td>' . implode('</td><td>',explode(',',$line)) . '</td></tr>'; 
    } 
    echo '</table>'; 
?> 
0

嘗試這種情況:

文件讀入到一個數組,然後將其通過array_walk通過處理所述陣列的每一行column'ize它。

<?php 
function addElements(&$v, $k) { 
    $v1 = explode(',', $v); // break it into array 
    $v2 = ''; 
    foreach($v1 as $element) { 
     $v2 .= '<td>'.$element.'</td>'; 
      // convert each comma separated value into a column 
    } 
    $v = '<tr>'.$v2.'</tr>'; // add these columns to a row and return 
} 

// read the whole file into an array using php's file method. 
$file = file('1.txt'); 
// now parse each line of the array so that we convert each line into 3 columns. 
// For this, i use array_walk function which calls a function, addElements, 
// in this case to process each element in the array. 
array_walk($file, 'addElements'); 
?> 
<html> 
    <head></head> 
    <body> 
     <table border="0"> 
      <?php echo implode('',$file);?> 
     </table> 
    </body> 
</html> 

希望它有幫助。請參閱php文檔filearray_walk。這些都是簡單而方便的功能。

+0

Pushpesh,你的編碼方式是超過我的頭。有沒有一種方法可以製作出真正簡化的版本? :D – Bren 2012-08-06 07:42:51

+0

哦!是嗎?那麼,我會加入對此的評論。 :) – 2012-08-06 07:44:23

1

你可以做到以下幾點:

3434,83​​,8732722
834,93,4983293
9438,43933,34983

$filename = 'abc.txt'; 
$content = file_get_contents($filename); 
$explodedByBr = explode('<br/>', $content); 
$table = "<table border='1'>"; 
foreach ($explodedByBr as $brExplode) { 
    $explodedByComma = explode(',', $brExplode); 

    $table .= "<tr>"; 
    foreach ($explodedByComma as $commaExploded) { 
    $table .= "<td>" .$commaExploded. "</td>"; 
    } 
    $table .= "<tr/>"; 
} 
$table .= "</table>"; 

echo $table; 

的abc.txt在下面的格式有數據