누락된 열에 대한 기본값과 연관 배열 병합
여러 연관 배열을 병합하고 누락된 열을 기본값으로 채우려면 다음을 수행합니다. PHP의 배열 기능을 활용하십시오.
문제
다음 배열을 고려하십시오.
$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value'); $b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value'); $c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value');
var_export를 사용하여 이러한 배열을 병합할 때, 얻을 수 있는 이점:
array ( 0 => array ( 'a' => 'some value', 'b' => 'some value', 'c' => 'some value', ), 1 => array ( 'a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value', ), 2 => array ( 'b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value', ), )
해결책
배열 키를 결합하고 누락된 열을 빈 문자열로 채우려면 array_merge:
<code class="php">$keys = array(); foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) $keys[$key] = ''; $data = array(); foreach($d as $values) { $data[] = array_merge($keys, $values); }</code>이렇게 하면 원하는 결과가 생성됩니다.
Array ( [0] => Array ( [a] => some value [b] => some value [c] => some value [d] => [e] => [f] => [x] => [y] => [z] => ) [1] => Array ( [a] => another value [b] => [c] => [d] => another value [e] => another value [f] => another value [x] => [y] => [z] => ) [2] => Array ( [a] => [b] => some more value [c] => [d] => [e] => [f] => [x] => some more value [y] => some more value [z] => some more value ) )또 다른 옵션은 빈 값으로 키 쌍 값을 생성하고 병합하는 것입니다.
<code class="php">$keys = array_keys(call_user_func_array('array_merge', $d)); $key_pair = array_combine($keys, array_fill(0, count($keys), null)); $values = array_map(function($e) use ($key_pair) { return array_merge($key_pair, $e); }, $d);</code>이렇게 하면 결과도 생성됩니다. 원하는 출력이 동일합니다.
위 내용은 누락된 열에 대한 기본값을 사용하여 연관 배열을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!