只有当value不为null时,我才需要用一个元素列表填充一个数组。 如果要追加的值为空,有没有办法跳过数组填充?
例如:
$list = array();
for ($i = 1; $i <= 10; $i++) {
$modulo = ($i % 2);
if ($modulo) $list[] = $i;
}
有没有办法将循环中的两个语句写入一个唯一的而不使用$ modulo变量?
类似......
$list = array();
for ($i = 1; $i <= 10; $i++) {
$list[] = ($i % 2);
}
预期的行为是$ list数组必须包含1,3,5,7,9 ......
这不是真实的例子,因为($ i%2)必须用在380k元素数组上应用的复杂函数替换,并且可能返回一些或null。我想排除空值。
答案 0 :(得分: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) : "";
}
必须是其中之一; - )
答案 1 :(得分: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
会删除数组中的所有falsey
或null
或empty
值,如果这符合您可能具有的值。