【问题标题】:PHP display a readable arrayPHP 显示一个可读的数组
【发布时间】:2015-08-03 09:57:45
【问题描述】:

当使用 var_dump 和其他命令查看示例时,我看到了 php.net 的手册和示例排序。

所有示例都使用 pre 样式排序。

但在我自己的服务器上,我只在一行上看到相同的示例

var_dump($a);

手动查看->

array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}

在我的服务器上我看到:

array(3) {[0]=>int(1) [1]=>int(2) [2]=>array(3) {[0]=>string(1) "a" [1]=>string(1) "b" [2]=>string(1) "c"}}

我认为这是一个运行时选项,我可以更改它,但我不确定。那么如何才能得到与手册中相同格式的输出呢?

【问题讨论】:

  • 删除 <pre> 并尝试相同的 var_dump
  • 这不是 PHP,而是您将输出转储到的浏览器。如果您希望浏览器很好地显示它,则必须在 vardump 输出周围包装适当的 html...
  • 那么这个问题我们在哪里?
  • 如果您安装/启用了 xdebug,那么输出将被自动格式化
  • 开发电脑上不是xdebug

标签: php arrays var-dump


【解决方案1】:

您可能正在寻找pre 标记,它将为您提供格式良好的输出。在使用var_dump();之前打印它,例如

echo "<pre>";
var_dump($arr);
echo "</pre>";

输入/输出示例:

$arr = [1, 2, 3];

带有pre标签:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

没有pre标签:

array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }

【讨论】:

  • 我使用这个解决方案。但我质疑它是不同的。我糟糕的英语无法清楚地解释问题。感谢您的回复。
  • @abkrim 那你还有什么问题?如果它是运行时选项?答案是否定的。
  • @abkrim 你的问题是为什么输出的格式与你的不同?
  • Ohh my goog...我看到了网页代码,并放置了
     标签...对于给您带来的不便,我深表歉意。不是php专家。最好的问候
【解决方案2】:

我为这个案例创建了这个函数。

function echo_array($array,$name = '')
{
    $debug = debug_backtrace();
    $file = $debug[0]['file'];
    $line = $debug[0]['line'];
    $array = "<pre>".print_r($array,true)."</pre>";
    ?>
    <table cellpadding="0" cellspacing="0" width="100%" style="background-color:white;">
      <tr>
        <td align="left">
          <fieldset>
            <legend>
              <?=$name?> in: <?=$file?>:<?=$line?>
            </legend>
            <?=$array?>
          </fieldset>
        </td>
      </tr>
    </table>
    <?
}

print_r() 可以传递数组吗,第二个参数说应该返回而不是打印出来。

我使用调试信息来获取调用此函数的位置,因为有时我需要调用其中的许多信息,这会让人感到困惑。 您还可以为其设置名称以确定回显的内容;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2012-05-28
    • 1970-01-01
    • 2016-02-06
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多