Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使压缩跳过为空_Php - Fatal编程技术网

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,这是有效的,而且不会太冗长!感谢阿森,这是有效的,并不是真的太详细了!