php print_r很好的表

时间:2009-09-06 18:26:52

标签: php

我希望能够从print_r数组语句的内容中生成包含行和列的格式良好的表吗?

有什么想法吗?

4 个答案:

答案 0 :(得分:66)

这是使用html pre标签打印漂亮数组的一种非常简单的方法:

<?php
$myarray = array('a','b','c');
echo '<pre>';
print_r($myarray);
echo '</pre>';
?>

答案 1 :(得分:19)

你的问题有点模糊,但你的意思是这样的:

http://dbug.ospinto.com/

dbug bar

答案 2 :(得分:12)

试试这个,可以改进但是有效。

function myprint_r($my_array) {
    if (is_array($my_array)) {
        echo "<table border=1 cellspacing=0 cellpadding=3 width=100%>";
        echo '<tr><td colspan=2 style="background-color:#333333;"><strong><font color=white>ARRAY</font></strong></td></tr>';
        foreach ($my_array as $k => $v) {
                echo '<tr><td valign="top" style="width:40px;background-color:#F0F0F0;">';
                echo '<strong>' . $k . "</strong></td><td>";
                myprint_r($v);
                echo "</td></tr>";
        }
        echo "</table>";
        return;
    }
    echo $my_array;
}

答案 3 :(得分:-1)

这是我发现的另一个很好的例子。相同的输出,更长的代码,更多的颜色。

function print_nice($elem,$max_level=10,$print_nice_stack=array()){
if(is_array($elem) || is_object($elem)){
    if(in_array(&$elem,$print_nice_stack,true)){
        echo "<font color=red>RECURSION</font>";
        return;
    }
    $print_nice_stack[]=&$elem;
    if($max_level<1){
        echo "<font color=red>nivel maximo alcanzado</font>";
        return;
    }
    $max_level--;
    echo "<table border=1 cellspacing=0 cellpadding=3 >";
    if(is_array($elem)){
        echo '<tr><td colspan=2  style="background-color:#333333;"><strong><font  color=white>ARRAY</font></strong></td></tr>';
    }else{
        echo '<tr><td colspan=2 style="background-color:#333333;"><strong>';
        echo '<font color=white>OBJECT Type: '.get_class($elem).'</font></strong></td></tr>';
    }
    $color=0;
    foreach($elem as $k => $v){
        if($max_level%2){
            $rgb=($color++%2)?"#888888":"#BBBBBB";
        }else{
            $rgb=($color++%2)?"#8888BB":"#BBBBFF";
        }
        echo '<tr><td valign="top" style="width:40px;background-color:'.$rgb.';">';
        echo '<strong>'.$k."</strong></td><td>";
        print_nice($v,$max_level,$print_nice_stack);
        echo "</td></tr>";
    }
    echo "</table>";
    return;
}
if($elem === null){
    echo "<font color=green>NULL</font>";
}elseif($elem === 0){
    echo "0";
}elseif($elem === true){
    echo "<font color=green>TRUE</font>";
}elseif($elem === false){
    echo "<font color=green>FALSE</font>";
}elseif($elem === ""){
    echo "<font color=green>EMPTY STRING</font>";
}else{
    echo str_replace("\n","<strong><font color=red>*</font></strong><br>\n",$elem);
}

}