1

私は2つの配列を持っており、単一の配列で一意の配列を作りたい

たとえば、私は持っ$a=array(3);ている$b=array(1,2,3)ので、欲しい$c=array(1,2,3)

私は次のようなコードを作りました:

            $a=array(3);
        $b=explode(',','1,2,3');
        $ab=$a+$b;
        $c=array_unique ($ab);
            print_r($c);

それは私に与えますArray ( [0] => 3 [1] => 2 )

しかし、私はしたいですArray ( [0] => 1 [1] => 2 [2] => 3 )

4

4 に答える 4

3
$a = array(1,2,3,4,5,6);

$b = array(6,7,8,2,3);

$c = array_merge($a, $b);

$c = array_unique($c);
于 2012-05-19T10:50:53.017 に答える
1

操作

$ab = $a + $b

あなたが期待していなかった結果をあなたに与えています。この動作の理由は、PHP: Adding array togetherで以前に説明されています。

$ab  is Array ( [0] => 3 [1] => 2 [2] => 3 )

+ 演算子は、右側の配列から左側の配列に残りのキーの要素を追加しますが、重複したキーは上書きされません。

array_merge は、より直感的な動作を提供します。

于 2012-05-19T10:48:29.187 に答える
0

配列のマージ、男。配列のマージ。とにかく、同様の質問に対するこの回答(https://stackoverflow.com/a/2811849/223668)が教えてくれるように:

The + operator appends elements of remaining keys from the right handed array to the left handed, whereas duplicated keys are NOT overwritten.

数値キーがある場合 (標準テーブルのように)、それらは確実に両方の配列で重複しており、結果は望ましいものとはほど遠いものです。

したがって、コードは次のようになります。

$c = array_unique(array_merge($a, $b));
于 2012-05-19T10:50:01.000 に答える
0

この array_merge を使用して、2 つの配列を連結する必要があります。

http://www.php.net/manual/en/function.array-merge.php

いいえ

$ab = $a + $b
于 2012-05-19T10:50:19.733 に答える