2017-03-26 2 views
0

compact을 사용하여 일부 변수에서 연관 배열을 작성합니다. 그러나 compactnull 값을 건너 뛰지 않습니다.컴팩트 만들기 건너 뛰기 NULL

$foo = 'rawr'; 
$ya = $foo === 'foo' ? 'ya' : null; 

print_r(compact('foo', 'ya')); // outputs Array ([foo] => rawr [ya] =>) 

나는 또한 설정되지 않은 변수에 $ 나중에 설정하려고하지만,이 같은 동일했다 :

$NOTSET; 
$foo = 'rawr'; 
$ya = $foo === 'foo' ? 'ya' : $NOTSET; 

print_r(compact('foo', 'ya')); // outputs Array ([foo] => rawr [ya] =>) 

에 의해 건너 뜁니다 값으로 변수를 설정하는 어쨌든 거기 콤팩트?

+1

['unset'] (https://secure.php.net/manual/en/function.unset.php). – Siguza

+1

당신의 값을 unset()하거나 나중에 배열을 필터링하십시오. – Rizier123

+0

@Siguza 아니지만 제 3의 unsert를 할 수 없다? '$ ya = $ foo === 'foo'처럼? 'ya': unset ($ ya); ' – Noitidart

답변

2

할 수 있습니다 filter the array를 압축 한 후 :

$foo = 'rawr'; 
$ya = $foo === 'foo' ? 'ya' : null; 

print_r(array_filter(compact('foo', 'ya'))); // outputs Array ([foo] => rawr) 
+0

감사합니다 ArSen이 작동하고 너무 많은 자세한 정보가 아닙니다! – Noitidart