0

2つのアレイがあり、1つはサブセットです。配列1のすべてのアイテムが一番上になるように、大きい方の配列を並べ替える必要があります。

array('c', 'e');
array('a', 'b', 'c', 'd', 'e', 'f', 'g');

2番目の配列を次のようにします。

array('c', 'e', 'a', 'b', 'd', 'f', 'g');

「c」と「e」はその上部にあります。

4

3 に答える 3

2

usort他の配列に要素が含まれている場合は、要素を使用して上に移動できます。

例えば:

$a = array('c', 'e');
$b = array('a', 'b', 'c', 'd', 'e', 'f', 'g');

usort($b, function($x, $y) use($a) {
    return in_array($x, $a) ? -1 : 1;
});

これは、の順序を考慮しませんが$a、重複する要素を許可します(必要な場合)。

于 2012-12-06T00:54:44.490 に答える
0

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

$a1 = array('c', 'e');
$a2 = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
$am = array_merge($a1, $a2);

要件を読んだ後、これは正しいアプローチです。

$a1 = array('c', 'e');
$a2 = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
$a2 = array_diff($a2, $a1);
$am = array_merge($a1, $a2);
于 2012-12-06T00:50:20.570 に答える
0
$a1 = array('c', 'e');
$a2 = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
$a3 = array_unique(array_merge($a1, $a2));
于 2012-12-06T00:55:41.253 に答える