php打印精美表格

php打印精美表格,php,Php,我希望能够从print\r数组语句的内容生成一个格式良好的表,其中包含行和列 有什么想法吗?你的问题有点模糊,但你的意思是这样的吗: 试试这个,虽然可以改进,但效果不错 function myprint_r($my_array) { if (is_array($my_array)) { echo "<table border=1 cellspacing=0 cellpadding=3 width=100%>"; echo '<tr>

我希望能够从print\r数组语句的内容生成一个格式良好的表,其中包含行和列


有什么想法吗?

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


试试这个,虽然可以改进,但效果不错

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;
}
函数myprint\r($my\u数组){
if(is_数组($my_数组)){
回声“;
回音“数组”;
foreach($k=>v的my_数组){
回声';
回声“”.$k.“”;
我的印刷费($v);
回声“;
}
回声“;
返回;
}
echo$my_数组;
}

这里有一个非常简单的方法,可以打印带有html预标记的漂亮数组:

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

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

函数print\u nice($elem,$max\u level=10,$print\u nice\u stack=array()){
if(is_数组($elem)| is_对象($elem)){
if(在数组中(&$elem,$print_nice_stack,true)){
回声“递归”;
返回;
}
$print_nice_stack[]=&$elem;
如果($max_级别$v){
如果($max_级别%2){
$rgb=($color++%2)?“#888888”:“#BBBBBB”;
}否则{
$rgb=($color++%2)?“#8888BB”:“#BBBBFF”;
}
回声';
回音“”.$k.“”;
打印精美($v、$max\U level、$print\U nice\U stack);
回声“;
}
回声“;
返回;
}
如果($elem==null){
回显“空”;
}elseif($elem==0){
回声“0”;
}elseif($elem==true){
呼应“真”;
}elseif($elem==false){
呼应“假”;
}elseif($elem==“”){
回显“空字符串”;
}否则{
echo str\u replace(“\n”,“*
\n”,$elem); }

}

您对“格式良好”的定义是什么?你想要一个HTML表格吗?一些XML?JSON?简历?人类可读的纯文本?如jasondavis所建议的,不要使用
print\r
只需在数组上使用foreach即可,如下所示。另外,根据斯特拉格的评论,我将回应一个具体请求/问题的请求。至少,了解数组中的内容会有所帮助,它是一维、二维、三维的吗?这个解决方案简单而有效。正是我需要的!或者这一行:
echo”“。打印($myarray,true)。"";
这是一个错误,该页面上的下载URL格式不正确-正确的链接是。如何调整此函数,使其返回最终生成的字符串,而不是打印表格?@user3574492:删除
echo
行,并将其存储到变量中,而不是使用串联。然后让函数返回变量。
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);
}