在单个表中添加多个数组

时间:2014-04-24 08:37:23

标签: php arrays html-table

<table border="2">
<?php 
foreach($array1 as $value)
{
    echo '<tr><td>';
    echo $value;
    echo '</td></tr>';
}
?>
</table>

我有更多数组:array2,array3。 上面的代码只执行array1的值,但我希望同一个表中所有数组的所有值都在不同的列中!

array1 | array2 | array3
------------------------
       |        |
       |        |
       |        |
       |        |

我想要这样的东西...... 我尝试修改代码,但不知道如何正确执行。

$data = mysql_query(" SELECT * FROM user_pokemon_db WHERE user_id = '".$id."' "); 
while($rows = mysql_fetch_assoc($data)) { 
    $db_id = $rows['id']; 
    $array[] = $db_id; 
    $level = $rows['level']; 
    $array1[] = $level; 
    $exp = $rows['exp']; 
    $array2[] = $exp; 
    $pkmn_id = $rows['pkmn_id']; 
    $data1 = mysql_query(" SELECT * FROM pokemons WHERE pk_id = '".$pkmn_id."' "); 
    while($rows = mysql_fetch_assoc($data1)) { 
        $poke = $rows['path']; $array3[] = $poke; 
    } 
}

上面的代码从数据库中提取数据并将其添加到不同的数组中!

2 个答案:

答案 0 :(得分:2)

创建阵列时,您不需要指定键,因此它们会自动生成。因此,您可以处理for循环的键,而不是使用值中的foreach:

我们可以在您的代码中看到$ array3比其他人更长。所以我们将基于它:

foreach($array3 as $key => $value)
{
    if (isset($array1[$key])){
        echo '<tr><td>'.$array1[$key].'</td>';
    }else{
        echo '<tr><td></td>';
    }
    if (isset($array2[$key])){
        echo '<td>'.$array2[$key].'</td>';
    }else{
        echo '<td></td>';
    }
    echo '<td>'.$array3[$key].'</td></tr>';    
}

应该有效

答案 1 :(得分:1)

尝试制作一个最终调用自身的函数。不确定我是否在这里得到了语法,但这应该有效。

$i = 0;
function test($i){
    if($i < ar1.lenght && $i < ar2.lenght && $i< ar3.lenght){
        echo "<tr><td>";
        echo ar1[$i];
        echo "</td><td>";
        echo ar2[$i];
        echo "</td><td>";
        echo ar3[$i];
        echo "</td></tr>";
        $i++;
        //calls itself with an incremented $i
        test($i);
    }//else do nothing.
}

- 编辑忘了一些标签