能否在不指定数组的某一部分的情况下,打印出数组的全部内容?
场景描述:我正在尝试打印以下内容:
while($row = mysql_fetch_array($result)){
echo $row['id'];
}
如果不指定"id",而是输出数组的完整内容。
如果你想自定义输出格式,只需添加另一个循环(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()。
为了获得漂亮且易读的结果,请使用以下代码:
function printVar($var) {
echo '<pre>';
var_dump($var);
echo '</pre>';
}
上述函数将保留原始格式,使它在Web浏览器中更易读。
var_dump()
可以实现此功能。
此函数显示有关一个或多个表达式的结构化信息,包括其类型和值。数组和对象以递归方式探索,并缩进显示结构。
这是我经常使用的一个小函数,如果你正在调试数组,它非常方便。它基本上与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
||---------------------------------||
与Karim的类似,但使用print_r输出更小,我发现通常这就是你所需要的:
function PrintR($var) {
echo '<pre>';
print_r($var);
echo '</pre>';
}
echo '<pre>';
。echo '<pre>';
print_r($row);
//@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.
}