【问题标题】:How to echo or print an array in PHP?如何在 PHP 中回显或打印数组?
【发布时间】:2012-04-06 16:42:22
【问题描述】:

我有这个数组

Array
(
  [data] => Array
    (
      [0] => Array
        (
          [page_id] => 204725966262837
          [type] => WEBSITE
        )

      [1] => Array
        (
          [page_id] => 163703342377960
          [type] => COMMUNITY
        )
      )
)

我的问题是如何在没有这种结构的情况下只回显内容?我试过了

foreach ($results as $result) {
    echo $result->type; 
    echo "<br>";
} 

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    foreach($results['data'] as $result) {
        echo $result['type'], '<br />';
    }
    

    echo $results['data'][1]['type'];

    【讨论】:

    • 谢谢你。您能告诉我如何仅回显 Array [1] 的类型吗?
    • 数组 [1] 是什么意思? :o
    • @andreas 我只想回显 COMMUNITY 或 163703342377960。不是数组的全部内容,而是具体
    • 试试echo $results['data'][1]['page_id'];
    【解决方案2】:

    您是否尝试使用print_r 以人类可读的形式打印它?

    【讨论】:

      【解决方案3】:

      这样就可以了

      foreach($results['data'] as $result) {
          echo $result['type'], '<br>';
      }
      

      【讨论】:

      • 谢谢你。您能告诉我如何仅回显 Array [1] 的类型吗?
      • @Kaoukkos echo $results['data'][1]['type'];
      • 如果我没有像data这样的密钥怎么办?
      • @PratikButani 使用 var_dump($array) 获取数组内容的更多信息
      • 如何在数据库中插入这些信息?例如,如果我有一个表,其中有一列名为 type 并且我想插入 [0]['type'] 、 [1]['type'] 等等?
      【解决方案4】:

      查看数组的内容可以使用。

      1) print_r($array); 或者如果您想要格式良好的数组,那么:

      echo '<pre>'; print_r($array); echo '</pre>';
      

      2) 使用var_dump($array) 获取数组中内容的更多信息,如数据类型和长度。

      3) 您可以使用 php 的 foreach(); 循环数组并获得所需的输出。 php 文档网站中有关 foreach 的更多信息:
      http://in3.php.net/manual/en/control-structures.foreach.php

      【讨论】:

      • 漂亮优雅。您可能希望将 #1 中的结束标记从
         更改为 。
      • 这个答案没有解决 OP 犯的错误。
      • 你能解释一下
         结构是如何让这个显示“很好”的吗?
      • @Robin
         标签显示由 print_r() 输出的新行和列表;如果没有 
        ,您会看到杂乱无章的未格式化数据边界。要查看它的格式,您应该查看 html 页面源代码。
      【解决方案5】:

      如果您只是想知道没有格式的内容(例如出于调试目的),我使用这个:

      echo json_encode($anArray);
      

      这会将其显示为非常易于阅读的 JSON。

      【讨论】:

      • 我想使用 Cordova InAppBrowser executeScript 方法从 html - php 文档中提取一些数据,没有 json_encode($array) 我无法实现!非常感谢@Mark E
      • echo json_encode($downloads, JSON_PRETTY_PRINT);效果更好
      【解决方案6】:

      你不需要for循环来查看数组中的数据,你可以简单地按照以下方式进行

      <?php
      echo "<pre>";
       print_r($results); 
      echo "</pre>";
      ?>
      

      【讨论】:

        【解决方案7】:

        您可以使用print_rvar_dumpvar_export php 函数:

        print_r: 转换成人类可读的形式

        <?php
        echo "<pre>";
         print_r($results); 
        echo "</pre>";
        ?>
        

        var_dump(): 会告诉你东西的类型以及里面有什么。

        var_dump($results);
        

        foreach loop:使用 for each 循环,您可以迭代数组的每个值。

        foreach($results['data'] as $result) {
            echo $result['type'].'<br>';
        }
        

        【讨论】:

        • 如何将结果插入数据库?
        【解决方案8】:

        我知道这是一个老问题,但如果你想要一个可解析的 PHP 表示,你可以使用:

        $parseablePhpCode = var_export($yourVariable,true);
        

        如果您将导出的代码回显到 file.php(带有 return 语句),您可能需要它作为

        $yourVariable = require('file.php');
        

        【讨论】:

          【解决方案9】:

          循环并打印关联数组的所有值,您可以使用foreach 循环,如下所示:

          foreach($results as $x => $value) {
              echo $value;
          }
          

          【讨论】:

            【解决方案10】:

            有多种功能可以打印数组内容,每个功能都有。

            print_r()

            打印关于变量的人类可读信息。

            $arr = ["a", "b", "c"];
            
            echo "<pre>";
            print_r($arr);
            echo "</pre>";
            
            Array
            (
                [0] => a
                [1] => b
                [2] => c
            )
            


            var_dump()

            显示有关表达式的结构化信息,包括其类型和值。

            echo "<pre>";
            var_dump($arr);
            echo "</pre>";
            
            array(3) {
              [0]=>
              string(1) "a"
              [1]=>
              string(1) "b"
              [2]=>
              string(1) "c"
            }
            


            var_export()

            显示有关返回表示是有效 PHP 代码的给定变量的结构化信息。

            echo "<pre>";
            var_export($arr);
            echo "</pre>";
            
            array (
              0 => 'a',
              1 => 'b',
              2 => 'c',
            )
            

            请注意,由于浏览器会将多个空白字符(包括换行符)压缩为一个空格 (answer),因此您需要将上述函数包装在 &lt;pre&gt;&lt;/pre&gt; 中,以便以正确的格式显示结果。


            还有另一种在特定条件下打印数组内容的方法。

            echo

            输出一个或多个字符串。所以如果你想使用echo打印数组内容,你需要循环遍历数组并在循环中使用echo打印数组项。

            foreach ($arr as $key=>$item){
                echo "$key => $item <br>";
            }
            
            0 => a 
            1 => b 
            2 => c 
            

            【讨论】:

              【解决方案11】:

              但是,我检查了答案,PHP 中的(对于每个)已弃用,并且不再适用于最新的 php 版本。

              通常我们会将数组转换为字符串以记录在某处,可能是调试或测试等。

              我会通过以下方式将数组转换为字符串:

              $Output = implode(",", $SourceArray);
              

              鉴于:

              $output 是结果(生成字符串的地方

              ",": 是分隔符(每个数组字段之间

              $SourceArray: 是你的源数组。

              希望对你有帮助

              【讨论】:

                【解决方案12】:

                您可以使用 var_dump() 函数显示有关变量/表达式的结构化信息,包括其类型和值,或者您可以使用 print_r() 显示有关变量/表达式的信息以人类可读的方式进行变量。

                示例:假设我们有以下数组,我们想要显示它的内容。

                $arr = array ('xyz', false, true, 99, array('50'));
                

                print_r() 函数 - 显示人类可读的输出

                Array
                (
                    [0] => xyz
                    [1] =>
                    [2] => 1
                    [3] => 99
                    [4] => Array
                        (
                            [0] => 50
                        )
                )
                

                var_dump() 函数 - 显示值和类型

                array(5) {
                  [0]=>
                  string(3) "xyz"
                  [1]=>
                  bool(false)
                  [2]=>
                  bool(true)
                  [3]=>
                  int(100)
                  [4]=>
                  array(1) {
                    [0]=>
                    string(2) "50"
                  }
                }
                

                这个答案中用到的函数可以在PHP.net网站var_dump()print_r()找到

                更多详情:

                » https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/

                » https://stackhowto.com/how-to-echo-an-array-in-php/

                【讨论】:

                  【解决方案13】:

                  人类可读:(例如,可以记录到文本文件..)

                  print_r( $arr_name , TRUE);
                  

                  【讨论】:

                    猜你喜欢
                    • 2012-06-22
                    • 1970-01-01
                    • 1970-01-01
                    • 2017-07-08
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多