2013-04-09 30 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>");這是更長,但更精確。