【问题标题】:How to format array out with printf in php如何在php中使用printf格式化数组
【发布时间】:2012-02-14 06:17:07
【问题描述】:

我知道PHP中的printf语句可以格式化字符串如下:

//my variable 
$car = "BMW X6";

printf("I drive a %s",$car); // prints I drive a BMW X6, 

但是,当我尝试使用printf 打印数组时,似乎没有办法对其进行格式化。有人可以帮忙吗?

【问题讨论】:

  • 您希望在数组上发生什么样的格式?类似于print_r 数组时发生的情况?
  • 希望如果我有一个像 //$my_array(3,2,1) 这样的数组,我可以按如下方式使用 printf() //printf("Ready! %s,%s, %s Go!",$my_array) 输出 // 准备就绪! 3,2,1,出发!
  • 不,你不能那样做……相信我,你也不会想要那样的。您是初学者,几年后与我们交谈,您会发现这不是一个选择。 :D

标签: php arrays string-formatting


【解决方案1】:

是的

在你的 html 中放置这个:

<pre>
  <?php 
   print_r ($your_array);
  ?>
</pre>

或仅在您的代码上:

 print_r ($your_array);

【讨论】:

    【解决方案2】:

    这是http://php.net/manual/en/function.printf.php 上的一个 cmets 的摘录:

    [编者注:或者只使用 vprintf...]

    如果你想做这样的事情:

    // this doesn't work
    printf('There is a difference between %s and %s', array('good', 'evil'));   
    

    代替

    printf('There is a difference between %s and %s', 'good', 'evil'); 
    

    你可以使用这个功能:

    function printf_array($format, $arr) 
    { 
        return call_user_func_array('printf', array_merge((array)$format, $arr)); 
    }  
    

    按如下方式使用:

    $goodevil = array('good', 'evil'); 
    printf_array('There is a difference between %s and %s', $goodevil); 
    

    它会打印:

    There is a difference between good and evil
    

    【讨论】:

      【解决方案3】:

      printf 不递归处理数组。但是你可以这样做:

      $cars=array('Saab','Volvo','Koenigsegg');
      print_r($cars);
      

      【讨论】:

        【解决方案4】:

        你不能像那样“打印”一个数组,你必须使用foreach 遍历它,然后你可以用值打印所有你想要的。例如:

        $cars = array('BMW X6', 'Audi A4', 'Dodge Ram Van');
        foreach($cars as $car) {
            printf("I drive a %s", $car);
        }
        

        这将输出:

        I drive a BMW X6

        I drive a Audi A4

        I drive a Dodge Ram Van

        【讨论】:

        • 这确实是最切题、最简单的一篇。
        【解决方案5】:

        您是否正在使用print_r with true parameter 寻找类似的东西:

        printf("My array is:***\n%s***\n", print_r($arr, true));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-10-19
          • 2021-08-16
          • 1970-01-01
          • 1970-01-01
          • 2017-03-16
          • 2020-01-03
          • 1970-01-01
          相关资源
          最近更新 更多