2012-08-07 3 views
0

내 앱에 필요한 값 배열이 있습니다. 값이 제공되지 않으면 기본값으로 채우고 싶습니다.PHP 배열이 NULL 인 경우 기본값으로 채 웁니다. 배열 교차 트릭?

$combined = array('faz','bar','baz') 

는 기본적으로 기본 하나를 누락 배열 인덱스를 입력 : 예를 들어, 내 응용 프로그램은 내가 결과를 필요로 세 가지 값

$default_vals = array('foo','bar','baz'); 
$given_vals = array('faz',NULL); 

기대합니다.

거의 5:00이며 두뇌가 튀겨졌습니다. array_intersect() 또는 merge()와 같은 array_function()을 사용하여 쉽게이 작업을 수행 할 수 있다고 생각했습니다.

감사합니다.

편집 : 그건 그렇고 .. $ given_vals는 $ default와 같은 값을 가질 수 있으므로이 경우에도 솔루션이 작동해야합니다. 그 array_filterDocs 것주의

$result = array_filter($given_vals) + $default_vals; 

:

답변

4

당신은 (배열 노조 운영자가 Array operatorsDocs를 참조 +입니다) 다음 소위 배열 조합을 할 수 먼저 입력 밖으로 NULL의를 필터링해야 FALSE 또는 빈 문자열과 같은 값도 제거하십시오. 그래서 나는 그것이 당신의 필요에 맞는 지 100 % 확신하지 못합니다. 경우,보다 구체적으로하지 :

$result = array_filter($given_vals, function($v) {return !is_null($v);}) 
      + $default_vals; 
ksort($result); 
+0

때때로 나는이 – alfasin

+2

, 그것은 현상금라고 ... +2 버튼이 있었으면 좋겠어 ... – ircmaxell

관련 문제