在PHP中创建列

时间:2014-04-27 14:43:06

标签: php arrays foreach html-table simple-html-dom

我在数组中有一些值如下:

$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 

所以第一列是正确的,但其他列是水平展开并重复的。

3 个答案:

答案 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

Demo

答案 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

http://3v4l.org/2QCDu

答案 2 :(得分:0)

我们在打高尔夫球吗?

foreach(array_combine(explode(',', $elm), explode(',', $elm2)) as $k => $v){
  echo "$k $v\n";
}