2014-12-03 2 views
0

array_replace_recursive를 사용하여 두 개의 배열을 재귀 적으로 병합하려고합니다. 이 코드입니다 :php를 사용할 때 숫자 키가 잘못되었습니다. array_merge_recursive

$col = array(); 
$new = array_merge_recursive($col, array('table1' => array(1 => true))); 
$new = array_merge_recursive($new, array('table1' => array(0 => false))); 

$ 새로운 배열의 덤프는 내가 "표"배열의 숫자 키를 보존하는 것입니다 무엇이 필요

array(1) { ["table1"]=> array(2) { [1]=> bool(true) [2]=> bool(false) } } 

입니다. 예상 결과는

array(1) { ["table1"]=> array(2) { [0]=> bool(false) [1]=> bool(true) } } 

이어야합니다. 누구에게도 해결책이 있습니까?

+0

'array_merge_recursive' 대신에'array_replace_recursive'를 사용하십시오. –

+0

감사합니다. 이것은 작동하는 것 같습니다. 확인을 위해 답변을 제출하십시오. @ThinkDifferent –

답변

0

array_merge_recursive 대신 array_replace_recursive을 사용하십시오.

0

당신은

$new = array_merge_recursive(array(), array('table1' => array(0 => false))); 
$new = array_merge_recursive($new, array('table1' => array(1 => true))); 

당신이로 실행중인 문제는 아직 후속 호출은 배열의 첫 번째 요소에 추가합니다 키를 생성하여 인수의 순서를 전환 할 수 있습니다.

+0

답변 주셔서 감사합니다. 이것 역시 작동합니다. 단지 저장된 키와 함께 두 개 이상의 병합을 수행하고 있으며 array_replace_recursive가 정렬없이 수행 할 때 먼저 정렬하는 것을 의미합니다. –

관련 문제