2009-09-11 12 views
1

私は結合したい値の配列を2つ持っていますが、PHPが提供する唯一のメソッドは値の代わりにキーで結合するようです。ここに私がこれを動作させるために使用できるハックがありますが、私が見逃したより良い方法やネイティブ関数があるかどうかは疑問です。私が最後に配列を使用して以来、しばらくお待ちしており、簡単な答えがあるようです。 2つの配列の組み合わせの値を返しますPHPでkeyの代わりに値をマージして配列

//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

2つの異なるキーを上書きできる2つの等しい値がありますか? – Eimantas

+0

それがポイントです。私はキーを考慮せずに配列を値で結合しようとしています(いずれも並べ替えで書かれています)。 – Xeoncross

+0

私はあなたのユースケースが可能性があることに魅了されています。興味深い質問ですが、私はなぜあなたがこれをしたいのかと戸惑ってしまいましたか?* –

答えて

4

ない完全にあなたが達成しようとしているか確認してください。私はあなたが2つの配列を組み合わせることを試みていると仮定しています。この場合、次のように動作します。

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

私はまた、これがトリックをすると思う、質問で尋ねた。 – bisko

+0

これはコードが少なくても同じことです。 – Xeoncross

関連する問題