2013-04-09 57 views
1

为了填充大量值的标签,我不希望显示等于'0'的值。PHP格式数字隐藏零

。例如,而不是:

Test USER 1 0 1 0 
Sample USER 1 0 1 0 

我想有:

Test USER 1  1 
Sample USER 1  1 

我使用printf("<td>%d</td>", $value);

显示我的价值我甚至试过printf("<td>%0d</td>", $dl_ends[0]);

谢谢

+0

做一个'var_dump($ value);'来查看这个变量的内容。 'printf(“%d”,0);'工作得很好。 – 2013-04-09 17:53:30

回答

0

试试这个

printf("<td>%d</td>", $value != 0 ? $value : ''); 

编辑

如果您还需要搭上空字符串,你可以使用下面的代码

printf("<td>%d</td>", $value != 0 && $value != '' ? $value : ''); 
+0

谢谢JackPoint,但这并不能解决问题,因为它会给出一个空字符串,以格式化 - > 0出现。另一种方式是,即使它不允许数字格式化:'printf(“​​%s”,$ value!= 0?$ value:'');' – Pacmac 2013-04-10 07:36:09

+0

增加了第二个代码示例,检查空字符串。这是否符合您的需求? – JackPoint 2013-04-10 08:02:41

0
<td><?php $value ? printf("%d", $value) : ''; ?></td> 
+0

'​​<?php $ value!= 0? printf(“%d”,$ value):''; ?>' 会更好,不是吗? – Pacmac 2013-04-10 07:40:01

+0

如果'$ value'为0,FALSE或NULL,那么第二个语句将被执行,除了这些值和第一个语句之外的任何东西都会被执行,尽管你的方式也可以工作 – verbumSapienti 2013-04-10 10:56:48

0

有两种方法来解决我的问题: printf("<td>%s</td>", $value != 0 ? $value : '');避免数字格式,或 $value != 0 ? printf("<td>%d</td>", $value) : printf("<td></td>");这是更长,但更精确。