2013-07-17 30 views
0

Here is the result of suggestion本人菜鳥到PHP,我想每一行中使用foreach語句,以顯示沒有空值,代碼如下,您的支持將不勝感激印刷只能從我的DB值,而不是diplaying空值

<?php 

     foreach ($customer['Stocks'] as $stock) { ?> 
     <tr> 
      <td><?php echo $stock['stsymbol']?><td> 
      <td><?php echo $stock['noshares']?><td> 
      <td><?php echo $stock['purchaseprice']?><td> 
      <td><?php echo $stock['datepurchased']?><td> 
      <td><?php echo $stock['Original Value']; ?><td> 
      <td><?php echo $stock['Current Price'];?><td> 
      <td><?php echo $stock['Current Value']?><td> 
<?php } // end foreach ?> 
+1

這就是你到了那裏一些偉大的代碼。 – kennypu

+1

這個問題在另一個人今天之前問過 – DevZer0

+0

你究竟想要顯示哪些數據不存在? –

回答

-1
<td><?= strlen($stock['stsymbol'])!==0? $stock['stsymbol'] : '-' ?><td> 

我替換這是你的迴音,這是短期的方法:

// These do the same: 
<td><?php echo $something; ?></td> 
<td><?= $something ?></td> 

然後在回聲我做了一個簡短的if/else(三元),它是這樣工作的:代替strlen($var)!==0

if(strlen($var)===0){ echo 'true'; } else{ echo 'false'; } 
echo strlen($var)===0)? 'true' : 'false'; 
// (condition) ? (if true) : (if false); 

,你也可以做isset($var)$var===NULL

+0

短標籤現在被禁用。 – DevZer0

+0

是的,我之前問過,但是這個帖子沒有顯示我的foreach循環,所以我得到了解決方案,不能解決問題,當我發現我再次發佈 –

+0

@ DevZer0:你是什麼意思? – Martijn

0

使用三元運算,以顯示你的 「空」 值,否則一個空字符串:

<?php 
    foreach ($customer['Stocks'] as $stock) { ?> 
    <tr> 
     <td><?php echo ($stock['stsymbol'] == NULL) ? $stock['stsymbol'] : ''; ?></td> 
     <td><?php echo ($stock['noshares'] == NULL) ? $stock['noshares'] : ''; ?></td> 
     <td><?php echo ($stock['purchaseprice'] == NULL) ? $stock['purchaseprice'] : ''; ?></td> 
     <td><?php echo ($stock['datepurchased'] == NULL) ? $stock['datepurchased'] : ''; ?></td> 
     <td><?php echo ($stock['Original Value'] == NULL) ? $stock['Original Value'] : ''; ?></td> 
     <td><?php echo ($stock['Current Price'] == NULL) ? $stock['Current Price'] : ''; ?></td> 
     <td><?php echo ($stock['Current Value'] == NULL) ? $stock['Current Value'] : ''; ?></td> 
    </tr> 
<?php } // end foreach ?> 

希望你得到的想法

+0

不需要圍繞條件的中斷。儘量讓代碼看起來儘可能簡單:)添加括號只會讓它看起來更加困難,並且不會增加任何區別(*某些情況除外) – Martijn

+0

thankyou。這只是我表達條件的方式,因爲它有助於我的理解,有點像'1 +(2 * 3)= 7而不是9'。但我同意在這種情況下不需要。 – verbumSapienti

+0

刪除我的所有值 –

0

你可以像這樣走過陣列:

foreach($customer['stocks'] as $key => $value) { 

    if(empty($value)) { 

     $customer['stocks'][$key] = '-'; 


    } 

} 

讓你的顯示器的代碼更好的可讀性:

foreach ($customer['Stocks'] as $stock) { 

    echo('<tr> 
     <td>'.$stock['stsymbol'].'<td> 
     <td>'.$stock['noshares'].'<td> 
     <td>'.$stock['purchaseprice'].'<td> 
     <td>'.$stock['datepurchased'].'<td> 
     <td>'.$stock['Original Value'].'<td> 
     <td>'.$stock['Current Price'].'<td> 
     <td>'.$stock['Current Value'].'<td> 
    </tr>'); 

} 
1
<?php 
    foreach ($customer['Stocks'] as $stock) { 
     if(! empty($stock['stsymbol'])){ ?> 
     <tr> 
      <td><?php echo $stock['stsymbol']?><td> 
      <td><?php echo $stock['noshares']?><td> 
      <td><?php echo $stock['purchaseprice']?><td> 
      <td><?php echo $stock['datepurchased']?><td> 
      <td><?php echo $stock['Original Value']; ?><td> 
      <td><?php echo $stock['Current Price'];?><td> 
      <td><?php echo $stock['Current Value']?><td> 
     </tr> 
<?php 
     } // end if 
    } // end foreach ?> 
+0

我認爲這是一個相當先進的解決方案。這種情況適用於這種情況,但如果您想添加對價格的檢查,而不是查看是否爲空,但是要通過'number_format()'顯示它呢?代碼的可讀性和維護與實際代碼一樣重要:) – Martijn

+0

@Martijn - 我錯過了你的觀點。如果這個問題與數字格式有關,我會提供一個不同的解決方案。爲什麼我會試圖提供一個與問題無關的解決方案? –

+0

@PédeLeão,我尋求的解決方案是不用空值,你的解決方案是顯示我的單詞「空」,它取代了我所有的空值 –