2017-02-10 63 views
0

如果value不爲null,則需要使用元素列表填充數組。 如果要附加的值爲空,是否有辦法跳過數組填充?如何將元素插入數組如果不爲null

作爲例子:

$list = array(); 
for ($i = 1; $i <= 10; $i++) { 
    $modulo = ($i % 2); 
    if ($modulo) $list[] = $i; 
} 

有沒有寫在循環兩種語句轉換成一個獨特的一個不使用$的方式模變量

像...

$list = array(); 
for ($i = 1; $i <= 10; $i++) { 
    $list[] = ($i % 2); 
} 

預期的行爲是$名單數組必須包含1,3,5,7,9 ......

這不是真實的例子因爲($ i%2)必須替換爲一個380k元素數組上的複雜函數,並且可能會返回一些內容或爲空。我想排除空值。

+0

你可以只用你的,如果評估的表達聲明。 – aynber

+3

一旦你解決了分析錯誤,你的代碼會產生'1,3,5,7,9',所以我不明白它。 – AbraCadaver

回答

1

如何裝酷是這樣的:

$list = array(); 
for ($i = 1; $i <= 10; $i++) { 
    ($i%2) ? ($list[] = $i) : ""; 
} 

但是它的有點混亂,你如何描述它。也許你想:

$list = array(); 
for ($i = 1; $i <= 10; $i++) { 
    (!is_null($i%2)) ? ($list[] = $i) : ""; 
} 

或者,如果你想要的功能的結果:

$list = array(); 
for ($i = 1; $i <= 10; $i++) { 
    (!is_null($a = ($i%2))) ? ($list[] = $a) : ""; 
} 

它必須是一個這些;-)

0

一:

$list = array(); 
for (i = 1; $i <= 10; $i++) { 
    $modulo = ($i % 2); 
    if (!is_null($modulo)){ 
     $list[] = $i; 
    } 
} 

如果該值不是一個PHP null那麼你可以把它添加到$list陣列。

二:

$list = array(); 
for (i = 1; $i <= 10; $i++) { 
    $list[] = $i; 
} 

$list = array_filter($list); 

PHP array_filter將從陣列中刪除任何falseynullempty值,如果這符合你有什麼可能的值。