2009-09-11 5 views
1

나는 두 개의 값 배열을 가지고 있습니다. 그러나 PHP가 제공하는 유일한 방법은 값 대신 키를 조합하는 것입니다. 여기에이 기능을 사용하기 위해 사용할 수있는 해킹이 있지만, 내가 놓친 더 나은 방법이나 기본 기능이 있는지 궁금합니다. 마지막으로 배열을 사용한 이후로 꽤 오랜 시간이 걸렸으며 쉬운 대답이있는 것처럼 보입니다. 두 배열의 결합 된 값을 반환PHP의 키 대신 값으로 병합 및 배열

//Input arrays that we want to combine into one array 
$array = array(2, 3, 4, 5); 
$array2 = array(5, 6, 1); 

//Flip values and keys 
$array = array_flip($array); 
$array2 = array_flip($array2); 

//Combine array 
$array3 = $array2 + $array; 

//flip array keys back to values 
$array3 = array_keys($array3); 

//Optional sort 
sort($array3); 

print_r($array3); 

:

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 4 
    [4] => 5 
    [5] => 6 
) 
+1

두 개의 다른 키를 덮어 쓸 수있는 두 개의 동일한 값을 알고 있습니까? – Eimantas

+0

그게 핵심입니다. 키에 상관없이 배열을 값으로 결합하려고합니다 (모든 정렬에 의해 어쨌든 작성됩니다). – Xeoncross

+0

나는 당신의 유스 케이스가 될 수있는 것에 매료되어있다. 흥미로운 질문이지만 왜 이렇게하고 싶은지 궁금합니다. * –

답변

4

하지 전적으로 당신이 달성하려고하는 것을 확인하십시오. 난 당신이 어떤 중복없이 2 배열을 결합하려고하는 것으로 가정입니다. 이 경우 다음 작동합니다

$newarr = array_unique(array_merge($array, $array2)); 
+0

나는 또한 이것이 트릭을 할 것이라고 생각한다. – bisko

+0

예, 이것은 적은 코드로 동일한 작업을 수행합니다. – Xeoncross