Php 使压缩跳过为空
我正在使用Php 使压缩跳过为空,php,Php,我正在使用compact从一些变量构建关联数组。但是compact不会跳过null值 $foo = 'rawr'; $ya = $foo === 'foo' ? 'ya' : null; print_r(compact('foo', 'ya')); // outputs Array ( [foo] => rawr [ya] => ) 我还尝试将$ya设置为一个未设置的变量,但它给出了相同的结果,如下所示: $NOTSET; $foo = 'rawr'; $ya = $foo =
compact
从一些变量构建关联数组。但是compact
不会跳过null
值
$foo = 'rawr';
$ya = $foo === 'foo' ? 'ya' : null;
print_r(compact('foo', 'ya')); // outputs Array ( [foo] => rawr [ya] => )
我还尝试将$ya设置为一个未设置的变量,但它给出了相同的结果,如下所示:
$NOTSET;
$foo = 'rawr';
$ya = $foo === 'foo' ? 'ya' : $NOTSET;
print_r(compact('foo', 'ya')); // outputs Array ( [foo] => rawr [ya] => )
是否要将变量设置为压缩将跳过的值?压缩后,您可以:
$foo = 'rawr';
$ya = $foo === 'foo' ? 'ya' : null;
print_r(array_filter(compact('foo', 'ya'))); // outputs Array ( [foo] => rawr )
压缩后,您可以:
$foo = 'rawr';
$ya = $foo === 'foo' ? 'ya' : null;
print_r(array_filter(compact('foo', 'ya'))); // outputs Array ( [foo] => rawr )
。要么
unset()
您的值,要么在以后筛选数组。@Siguza I不能在第三级中取消插入,尽管否?像$ya=$foo==='foo'?'雅:未结算($ya)代码>@Noitidart不,您不能。PHP中的变量的工作方式类似于键/值对。无论值是多少,将其指定给键都将始终使键存在。要删除键,您必须跳出值分配。unset()
您的值,或者在以后筛选数组。@Siguza我不能在第三级中取消插入,但否?像$ya=$foo==='foo'?'雅:未结算($ya)代码>@Noitidart不,您不能。PHP中的变量的工作方式类似于键/值对。无论值是多少,将其指定给键都将始终使键存在。为了删除键,你必须跳出值赋值的范围。谢谢ArSen,这是有效的,而且不会太冗长!感谢阿森,这是有效的,并不是真的太详细了!