2014-05-20 50 views
0

我打印使用loop.My代碼工作corrcetly一些數據,但我想跳過行,如果特定的值將是空值空跳過行項目,如果使用循環PHP

我的代碼

$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]值將是空白打印跳過此行

任何想法

回答

2

使用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 ', '; 
    } 
} 
+0

我認爲,我們應該解決的事實,OP的連接字符串,使一個陣列模式,而不是時,它應該只是被壓入堆棧陣列。 – Ohgodwhy

0

嘗試這樣的:

$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 ', '; 
} 
} 
} 
0

有檢查,如果事情是 「空白」 多種方法:

  1. if(empty($var)) - empty($var)true如果變量是沒有設置,或者它有一個空值(空= 空字符串 OR OR OR

  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 
} 
0

我已經採取了不同的方法,一點點從其他人...(用的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聲明。

所有的批評,歡迎