在php中打印数组

时间:2012-07-12 01:44:12

标签: php arrays printing

现在我明白你不能只使用echo来打印数组的内容而你必须使用foreach但是由于某种原因这不起作用。有什么想法吗?

$rows = $stmt->fetchAll();
foreach ($rows as $key=>$row)
       {
        echo "My value at $key is $row";
       }
}

输出:

My value at 0 is ArrayMy value at 1 is ArrayMy value at 2 is Array

6 个答案:

答案 0 :(得分:4)

您似乎已使用fetchAll从PDO获取了某些内容。

此方法返回一个数组(行)数组。内部数组具有column_name => value个元素。例如,如果您检索到列'firstName'和'lastName',则第一条记录的这些值将分别为$rows[0]['firstName']$rows[0]['lastName']

这样做的正确方法是:

$rows = $stmt->fetchAll();
foreach ($rows as $key => $row) {
    foreach ($row as $column => $value) {
        echo "My $column value for row $key is $value\n";
    }
}

Protip:观察括号对齐,这与正确无关,但使代码更具可读性:)

答案 1 :(得分:1)

对我来说看起来像一个多维数组。试试var_dumpprint_r

var_dump($rows);
print_r($rows);

答案 2 :(得分:1)

$ row是另一个无法直接转换为字符串的数组。您可以使用此函数来检查数组内容。

function d($data)
{
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}
d($stmt->fetchAll());

并且您做得更好(如果您忘记删除其通话不会损害您的网站)

define('ENVIRONMENT', 'development');
function d($data)
{
    if(ENVIRONMENT == 'development')
    {
    echo '<pre>';
    print_r($data);
    echo '</pre>';
    }
}
d($stmt->fetchAll());

答案 3 :(得分:0)

//<pre> tag will give you a well formatted version of var_dump  
echo "<pre>"; 
var_dump($rows);
echo "</pre>";

答案 4 :(得分:0)

尝试此操作来调试$row

的内容
$rows = $stmt->fetchAll();

foreach ($rows as $key=>$row)
{
    echo "First key: $key | ";

    foreach($row as $subkey => $subrow)
    {
        echo "Subkey: $subkey | Value: $subrow <br />";
    }

}

Addiotinally,使用var_dump()print_r()var_export()等功能很重要,它们可以防止很多问题。

答案 5 :(得分: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

每当你需要字符串或数组时,就会使用这个函数。 有2个Patameters 1. $ data - 可以是Array或String 2. $ d - 默认情况下为FALSE,但如果设置为true,则执行die()函数

在你的情况下,你可以这样写..

$rows = $stmt->fetchAll();

foreach ($rows as $key=>$row) {
      p($rows);  // to use p function use above code for p() in your code   
}