2012-08-06 111 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在下面的格式有数据