【问题标题】:Is there any way to get the output of PHP array like it's defined有什么方法可以像定义的那样获取 PHP 数组的输出
【发布时间】:2014-03-24 03:54:56
【问题描述】:

假设我有一个这样的数组

$array = ['a','b','c','d']

现在为了在屏幕上看到它,我有两个选择:

var_dumpprint_r

但是他们的输出是这样的

Array ( [0] => a [1] => b [2] => c [3] => d )

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

我有时觉得难以阅读。

有什么办法可以得到类似的输出

['a','b','c','d']

以便于阅读?

【问题讨论】:

  • @Barmar,他确实想要那样(数组是如何构造的)而var_export 不会那样做。他想要那个用于阅读目的。
  • 我同意@Barmar - 如果您想打印实际的PHP 代码,请使用var_export。如果您将 true 作为第二个参数传递,您可以将值分配给变量而不是打印它,这有时很有用。当然,5.4 的短数组语法是糖,var_export 会给你的是旧的array() 样式输出。但这也太可读了吧?或者,如果您发现 var_dump 的输出难以阅读,我强烈推荐 XDebug 它将很好地格式化您的 var_dump 输出:oi60.tinypic.com/1o84ex.jpg

标签: php arrays


【解决方案1】:

你应该添加

    <pre></pre>

在 print_r 函数之前和之后标记并区分它们

【讨论】:

    【解决方案2】:

    var_dumpprint_r 的输出是可读的 - 问题是 html 输出,它删除了换行符。

    所以我建议在 pre-tag 中使用这个函数

    echo '<pre><code>';
    var_dump($data);
    echo '</code></pre>';
    

    您也可以安装 php 模块 xdebug,它可以修改 var_dump 的输出以获得更好的可读性:http://xdebug.org/docs/display

    【讨论】:

      【解决方案3】:

      我用

      echo "<pre>".print_r($array,1)."</pre>";
      

      【讨论】:

      • 这不是 OP 想要的打印结果。他已经尝试过 print_r。
      • 不,但格式适合阅读......这基本上就是他所要求的。
      • 他这样说:有什么办法可以得到像['a','b','c','d']这样的输出...他想要以该格式显示数组。
      • 我还是不同意 :) 用户要求可读的格式。不知道他无法通过使用我提供的代码获得。它不是格式问题。这是他自己的建议。我的答案仍然是解决核心问题的可读性。甚至@Philipp 在两分钟后也给出了相同的答案。但好吧,这就是你的看法:)
      【解决方案4】:

      您可以制作自己的功能:

      function print_array($array) {
         echo '[';
         foreach($array as $letter) {
            echo $letter . ',';
         }
         echo ']';
      }
      
      $arr = ['a','b','c','d'];
      print_array($arr);
      

      【讨论】:

        【解决方案5】:

        似乎您需要它来阅读......为此使用json_encode();

        <?php
        $array = ['a','b','c','d'];
        echo json_encode($array);  //"prints" ["a","b","c","d"]
        

        【讨论】:

        • json 对于读取目的并不是真正的最佳选择。尝试编码一个多维数组并读取输出。
        • @Philipp,Ikr。奇怪的问题确实有奇怪的答案。
        • @Philipp 我认为他并不担心这一点。他想阻止简单的数组以复杂的符号打印。如果他有一个复杂的数组,他应该使用var_dumpprint_r
        猜你喜欢
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-12
        相关资源
        最近更新 更多