2011-04-08 26 views
1

我想通过拆分此字符串(*)签署字符串和分裂,然后插入到HTML表格

$string=" 
How Many Papers*On My Table 
How Many Mobiles*Your Brother have 
"; 

我想分裂他们,将其插入HTML表格这样

<table border="1" width="100%" id="table1"> 
    <tr> 
     <td>How Many Papers</td> 
     <td>On My Table</td> 
    </tr> 
    <tr> 
     <td>How Many Mobiles</td> 
     <td>Your Brother have</td> 
    </tr> 
</table> 
+0

我的表后它是一条线? – Karthik 2011-04-08 11:01:33

回答

1

您在这里有两个问题:分裂成线用作<tr> s和分裂每一行用作<td> S:

为了获得每行,你想先修剪你的原始字符串摆脱领先和尾随换行,那么你可以使用explode()创建由换行符分隔线的阵列(这样你就不会与你的数组中的空行结束):

$trimmedString = trim($string); 
$lines = explode("\n", $trimmedString); 

您也可以压缩这些两成单线消除临时需要$trimmedString变量:

$lines = explode("\n", trim($string)); 

接下来,您希望使用循环遍历每行来使用foreach。您将在此处创建表格行,并再次使用explode()根据星号拆分该行。你会使用其他foreach循环创建表的数据元素本身:

foreach($lines as $line) { 
    echo "<tr>"; 

    $elements = explode("*", $line); 
    foreach($elements as $element) { 
    echo "<td>" . $element . "</td>"; 
    } 
    echo "</tr>"; 
} 
+0

太好了......谢谢 – 2011-04-08 11:16:08

0

您可以使用explode()

$string=" 
How Many Papers*On My Table 
How Many Mobiles*Your Brother have 
"; 

// To split by newline 
$tmp = explode("\n", $string); 
// To split by * 
$data = array(); 
for($i = 0; $i < count($tmp); $i++) { 
    $data[] = explode("*", $tmp[$i]); 
} 
+0

如何将它们插入到html表中,因为我问bro – 2011-04-08 11:00:02

+0

你问如何分割它们,而不是如何将它们插入到html表中。 – halfdan 2011-04-08 12:01:05

0
$array = explode("\n", (explode('*', $string))); 

echo '<table border="1" width="100%" id="table1">'; 
foreach ($array as $row) { 
    echo 'tr>' 
    foreach ($row as $sr) { 
    echo '<td>'.$sr.'</td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 
+0

警告:为foreach()提供的无效参数(foreach($ row as $ sr){) – 2011-04-08 11:06:09

+0

)这有很多问题。在第一行中,星号爆炸将返回一个数组,但是你的换行符预计这个参数是一个字符串,所以它会在那里失败。即使它已经工作了,你也将消除区分行之间的唯一方法。您最终将得到一个单行表,其中结束元素是自包含的,但中间元素将包含多行。没有冒犯,但你应该在提交它作为答案之前测试你的代码。 – AgentConundrum 2011-04-08 11:21:25

0

我宁愿一个二维数组...

所以我自然会采取类似的东西:

$line = array(); 
$line = explode("\n" , $string); 

$cell = array(); 

for ($i = 0; != sizeof($line); $i++) { 
    $cell[$i] = array(); 
    $cell[$i] = explode("*", $line[$i]); 
} 

所以你有这样的二维数组:$ cell [linenumber] [cellnumber]

要打印表格中的单元格我会pr EFER嵌套的foreach循环:

foreach ($cell as $row_number -> $row_array) { 
    echo "<tr>"; 
    foreach ($row_array as $cell_number -> $cell_content) { 
     echo "<td>" . $cell_content . "</td>"; 
    } 
    echo "</tr>"; 
} 

请看看如果事情是错的或者我已经取得了一些错误,请指正;)