ホームページ  >  記事  >  バックエンド開発  >  PHPで配列の共通部分と差分を求める方法は何ですか

PHPで配列の共通部分と差分を求める方法は何ですか

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-08-28 16:09:422192ブラウズ

PHPで配列の共通部分と差分を求める方法は何ですか

1. 配列の交差 array_intersect()

array_intersect() 関数は、保持されたキーを含む配列を返します。配列は、最初の配列に出現し、他のすべての入力配列に出現する値のみで構成されます。その形式は次のとおりです:

array array_intersect(array array1,array array2[,arrayN…])

次の例は、$fruit1 配列に表示され、$fruit2 と $fruit3 にも表示されるすべてのフルーツを返します:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_intersect($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [0] => Apple )
?>

2 つの要素のみそれらが等しく、同じデータ型を持つ場合にのみ、array_intersect() 関数はそれらを同じとみなします。

関連する推奨事項: "PHP チュートリアル "

連想配列 array_intersect_assoc()

関数 array_intersect_assoc() と array_intersect の交差() は、比較の際に配列のキーも考慮することを除いて、基本的に同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。

形式は次のとおりです:

array array_intersect_assoc(array array1,array array2[,arrayN…])

次の例は、$fruit1 配列に出現し、$fruit2 および $fruit3 にも出現するすべてのキーと値のペアを返します:

<?php
$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");
$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");
$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");
$intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [red] => Apple )
?>

2. 配列の違い array_diff()

関数 array_diff() は、最初の配列にはあるが、他の入力配列には存在しない値を返します。この関数は array_intersect() の逆です。

array array_diff(array array1,array array2[,arrayN…])

例は次のとおりです。

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
// output
// Array ( [1] => Banana )
?>

連想配列 array_diff_assoc() の差集合

#関数 array_diff_assoc() は基本的に同じですarray_diff() と同様ですが、比較時に配列のキーも考慮されます。したがって、最初の配列に現れ、他の入力配列には現れないキーと値のペアのみが結果配列に返されます。その形式は次のとおりです。

array array_diff_assoc(array array1,array array2[,arrayN…])

次の例では、 [ yellow] => Banana のみが返されます。これは、この特別なキーと値のペアが $fruit1 に表示されますが、 $fruit2 と $fruit3 には存在しないためです。

rree

以上がPHPで配列の共通部分と差分を求める方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。