从PHP数组中输出(echo/print)所有内容

25

能否在不指定数组的某一部分的情况下,打印出数组的全部内容?

场景描述:我正在尝试打印以下内容:

while($row = mysql_fetch_array($result)){
echo $row['id'];
}

如果不指定"id",而是输出数组的完整内容。

9个回答

35

如果你想自定义输出格式,只需添加另一个循环(foreach)来遍历当前行的内容:

while ($row = mysql_fetch_array($result)) {
    foreach ($row as $columnName => $columnData) {
        echo 'Column name: ' . $columnName . ' Column data: ' . $columnData . '<br />';
    }
}

如果你不关心格式,可以使用在之前答案中推荐的print_r函数。

while ($row = mysql_fetch_array($result)) {
    echo '<pre>';
    print_r ($row);
    echo '</pre>';
}

print_r()函数仅打印数组的键和值,而var_dump()函数也会打印数组中数据的类型,例如字符串、整数、双精度浮点数等。如果您关心数据类型,请使用var_dump()而非print_r()。


19

为了获得漂亮且易读的结果,请使用以下代码:

function printVar($var) {
    echo '<pre>';
    var_dump($var); 
    echo '</pre>';
}

上述函数将保留原始格式,使它在Web浏览器中更易读。


1
你不应该把它命名为printVar或debugVar吗?为什么要叫它readVar? - jmucchiello
好主意,即兴命名它。可能应该是printVar。谢谢你的踩票。 - karim79

6

var_dump() 可以实现此功能。

此函数显示有关一个或多个表达式的结构化信息,包括其类型和值。数组和对象以递归方式探索,并缩进显示结构。

http://php.net/manual/zh/function.var-dump.php


4
我想您正在寻找print_r,它将以文本形式打印出数组。但是您无法控制格式,这更适用于调试。如果您想要漂亮的格式,您需要手动处理。

4

这是我经常使用的一个小函数,如果你正在调试数组,它非常方便。它基本上与Darryl和Karim发布的内容相同。我只是添加了一个参数标题,因此您可以获得一些调试信息,例如您要打印的数组。它还检查您是否提供了有效的数组,并让您知道如果您没有。

function print_array($title,$array){

        if(is_array($array)){

            echo $title."<br/>".
            "||---------------------------------||<br/>".
            "<pre>";
            print_r($array); 
            echo "</pre>".
            "END ".$title."<br/>".
            "||---------------------------------||<br/>";

        }else{
             echo $title." is not an array.";
        }
}

基本用法:

//your array
$array = array('cat','dog','bird','mouse','fish','gerbil');
//usage
print_array("PETS", $array);

结果:

PETS
||---------------------------------||

Array
(
    [0] => cat
    [1] => dog
    [2] => bird
    [3] => mouse
    [4] => fish
    [5] => gerbil
)

END PETS
||---------------------------------||

3

1

与Karim的类似,但使用print_r输出更小,我发现通常这就是你所需要的:

function PrintR($var) {
    echo '<pre>';
    print_r($var);
    echo '</pre>';
}

0
你可以使用print_r来获取易读的输出。 但是为了将其显示为文本,我们需要添加echo '<pre>';
echo '<pre>';
print_r($row);

0
 //@parram $data-array,$d-if true then die by default it is false
 //@author Your name

 function p($data,$d = false){

     echo "<pre>"; 
         print_r($data);
     echo "</pre>"; 

     if($d == TRUE){
        die();
     } 
} // END OF FUNCTION

每当您需要字符串或数组时,请使用此函数,它将非常好用。
有两个参数
1. $data - 它可以是数组或字符串
2. $d - 默认为FALSE,但如果您将其设置为true,则会执行die()函数

在您的情况下,您可以这样使用....

while($row = mysql_fetch_array($result)){
    p($row); // Use this function if you use above function in your page.
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接