簡體   English   中英

如果值為空,則使用for循環php跳過行項

[英]skip row item if value empty using for loop php

我使用for循環打印一些數據。我的代碼工作正常,但如果特定值為空,我想跳過行

我的代碼

$count = count($cd);
for ($i = 0; $i < $count; $i++) 
{

print'["'.$cd[$i][2].'", '.$cd[$i][4].', '.$cd[$i][5].','.$count.',"'.$cd[$i][8].'","'.$cd[$i][0].'", "'.strip_tags($cd[$i][3]).'","'.$cd[$i][6].'"]';

if ($i < ($count - 1))
 {
    echo ', ';
 }
}

如果$cd[$i][2] and $cd[$i][4]值為空,則打印跳過此行

任何想法

使用if條件跳過空行並檢查是否為空然后打印。

$count = count($cd);
for ($i = 0; $i < $count; $i++) 
{
   if(!empty($cd[$i][2]) && !empty($cd[$i][4]))
     print'["'.$cd[$i][2].'", '.$cd[$i][4].', '.$cd[$i][5].','.$count.',"'.$cd[$i][8].'","'.$cd[$i][0].'", "'.strip_tags($cd[$i][3]).'","'.$cd[$i][6].'"]';

   if ($i < ($count - 1))
   {
       echo ', ';
   }
}

試試這樣:

$count = count($cd);
for ($i = 0; $i < $count; $i++) 
{
if(!empty($cd[$i][2]) && !empty( $cd[$i][4])) {

print'["'.$cd[$i][2].'", '.$cd[$i][4].', '.$cd[$i][5].','.$count.',"'.$cd[$i][8].'","'.$cd[$i][0].'", "'.strip_tags($cd[$i][3]).'","'.$cd[$i][6].'"]';


if ($i < ($count - 1))
 {
    echo ', ';
 }
}
}

有多種方法可以檢查某些內容是否為“空白”:

  1. if(empty($var)) - 如果未設置變量,則為empty($var)true ,或者它具有空值 (空= 空字符串或者為

  2. if(!strlen($var)) - 這幾乎是相同的,除非沒有設置變量,你將得到一個警告,並且不是空值,在這種情況下顯然是(因為它檢查值的長度)。

  3. if(!isset($var)) - 如果設置了變量,則isset($var)true ,否則為false 所以, !isset($var)恰恰相反,因為否定。

因此,根據您對空白的定義,您可能需要在此處檢查不同的內容。 但總的來說,條件看起來像這樣:

for ($i = 0; $i < $count; $i++) 
{
   if(empty($cd[$i][2]) && empty($cd[$i][4])) continue; // skip this line entirely

   ... // the rest of your code in the loop
}

我從別人那里采取了一些不同的方法......(使用foreach代替)

以此為例:

$count = count($cd);
$i = 0;
$sep = ',';

foreach($cd as $item){
  if ($i == ($count - 1)){$sep = '';}

  if(!empty($item[2]) && !empty($item[4])){
    echo '["' . $item[2] . '", ' . $item[4] . ', ' . $item[5] . ',' . $count . ',"' . $item[8] . '","' . $item[0] . '", "' . strip_tags($item[3]) . '","' . $item[6] . '"]' . $sep;
  }else{
    $count --;
  }

  $i++;
}

不太確定是否會慢一些,但我一直喜歡一個foreach語句來for聲明。

所有批評都受到歡迎

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM