2017-02-10 21 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值,如果这符合你有什么可能的值。