PHP的printf函数在输出中添加数字

3
我想使用printf格式化一些输出,但是它在每个项目后面输出了一个数字,有什么原因和如何解决?
$array = array("Mo" => "09:30-19:00",  
          "Di" => "09:30-19:00", 
          "So" => "geschlossen");

foreach( $array as $key => $value ){
     echo printf("%3s:%15s", $key, $value);
}

输出

Mo: 09:30-19:0019 Di: 09:30-19:0019 So: geschlossen19

谢谢你

2个回答

5

这不仅仅是因为你在echo一个printf吗?

http://codepad.org/1KtxR9JF

<?php

$array = array("Mo" => "09:30-19:00",  
          "Di" => "09:30-19:00", 
          "So" => "geschlossen");

foreach( $array as $key => $value ){
     printf("%3s:%15s", $key, $value);
}

 Mo:    09:30-19:00 Di:    09:30-19:00 So:    geschlossen

0

你使用 echo printf(...) 而不是只用 echo,有什么特别的原因吗?

如果没有特别的原因,那么使用以下代码可以正确返回(不会附加19):

$array = array("Mo" => "09:30-19:00",  
          "Di" => "09:30-19:00", 
          "So" => "geschlossen");

foreach( $array as $key => $value ){
     echo "$key:$value";
}

抱歉,我刚刚重新阅读了你有关使用printf格式化的回答。 - TheBestBigAl
请参考MetalFrog的正确答案,它是相反的。 - TheBestBigAl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接