0

Rubyではこれを行うことができます:

fruit = ['banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava']
citrus = ['orange','lemon','lime','tangerine']
others = fruit - citrus

そしてothers、非柑橘系の果物の配列が含まれます。

PHPでこれを行うにはどうすればよいですか?

$fruit = array('banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava');
$citrus = array('orange','lemon','lime','tangerine');
$others = # NOW WHAT ?????

の各アイテムを繰り返し処理し、$citrusそのオフセットを見つけて$fruit(その配列に存在する場合)、設定を解除してから、array_values()を使用して配列のインデックスを修正する必要がありますか?または、より簡単でエラーが発生しにくい方法はありますか?

注意:私は配列の交差点を探していません。補数を探しています。これは元々、前者に尋ねる質問の複製として閉じられました。

4

4 に答える 4

6

はい、array_diff()まさにそれを行うものがあります:

 $others = array_diff($fruit, $citrus);

それはあなたに残します:

Array
(
    [0] => banana
    [1] => apple
    [6] => kiwi
    [7] => mango
    [8] => guava
)

これは、他の果物から柑橘系の果物を差し引いた後の予想される残りのようです。

于 2012-10-02T16:35:55.023 に答える
4

あなたはただ使うことができますarray_diff

$fruit = array('banana','apple','tangerine','orange','lemon','lime','kiwi','mango','guava');
$citrus = array('orange','lemon','lime','tangerine');
$others = array_diff($fruit, $citrus);
var_dump($others);

出力

array
  0 => string 'banana' (length=6)
  1 => string 'apple' (length=5)
  6 => string 'kiwi' (length=4)
  7 => string 'mango' (length=5)
  8 => string 'guava' (length=5)
于 2012-10-02T16:35:56.330 に答える
1

あなたが使用することができますarray_diff()

 $others = array_merge(array_diff($fruit, $citrus));

インデックスを配置するには、 array_mergeを使用する必要があります。ここで実際の動作を確認してください

$othersこれらの値が含まれます:

Array
(
    [0] => banana
    [1] => apple
    [6] => kiwi
    [7] => mango
    [8] => guava
)
于 2012-10-02T16:37:48.590 に答える
0

これは、 array_intersectおよびarray_diffによって実行できます 。

$filter1 = "red,green,blue,yellow";         
$parts1 = explode(',', $filter1);

$filter2 = "red,green,blue";        
$parts2 = explode(',', $filter2);


$result = array_intersect($parts1 , $parts2 );
print_r($result);

実例

ここに画像の説明を入力してください

$result = array_diff($parts1 , $parts2 );

print_r($result);

ライブ例

ここに画像の説明を入力してください

于 2012-10-02T16:40:14.477 に答える