我在数组中有一些值如下:
$elm = 'a,b,c';
$elm2 = 'd,e,f';
我想用这些数据创建一个表格,如下所示:
table:
a d
b e
c f
似乎不可能,因为HTML表是水平创建的,我总是以某种方式得到这个:
table:
a b c
d e f
我尝试了很多例子:
echo '<table>';
foreach($html->find($elm) as $m){
echo '<tr><td>' . $m . '</td>';
foreach($html->find($elm2) as $m2){
echo '<td>' . $m2 . '</td>';
}
echo '</tr>';
}
echo '</table>';
这给了我这个:
table:
a d e f
b d e f
c d e f
所以第一列是正确的,但其他列是水平展开并重复的。
答案 0 :(得分:2)
一些魔法:
$array = [explode(',',$elm), explode(',',$elm2)];
$array = call_user_func_array('array_map', array_merge([NULL], $array));
foreach ($array as $sub) {
echo implode(' ', $sub) . "\n";
}
输出:
a d
b e
c f
答案 1 :(得分:2)
尝试 -
$elm = 'a,b,c';
$elm2 = 'd,e,f';
$explode1 = explode(',', $elm);
$explode2 = explode(',', $elm2);
echo "<table>";
for($i=0; $i<sizeof($explode1); $i++)
{
echo "<tr>";
echo "<td>".$explode1[$i]."</td>";
echo "<td>".$explode2[$i]."</td>";
echo "</tr>";
}
echo "</table>";
的输出强>
<table>
<tr>
<td>a</td>
<td>d</td>
</tr>
<tr>
<td>b</td>
<td>e</td>
</tr>
<tr>
<td>c</td>
<td>f</td>
</tr>
</table>
的 DEMO 强>
答案 2 :(得分:0)
我们在打高尔夫球吗?
foreach(array_combine(explode(',', $elm), explode(',', $elm2)) as $k => $v){
echo "$k $v\n";
}