ホームページ >バックエンド開発 >PHPチュートリアル >複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

WBOY
WBOYオリジナル
2021-11-05 18:28:586265ブラウズ

前回の記事「PHP配列操作:配列要素の積を計算する方法」では、PHPで配列要素の積を計算する方法について、関連知識を詳しく紹介しました。 、PHP で 2 つの配列を比較し、複数の配列間の共通部分に関する関連知識を取得する方法を見てみましょう。皆さんのお役に立てれば幸いです。

複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

前の記事では、PHP で配列要素の積を計算する方法を紹介しました。PHP では for ループを使用できます。 #foreachLoop および array_product 関数を使用して、配列要素の積を計算します。配列のマージなど、複数の配列間の問題についても以前に取り上げましたが、配列の読み取りに関して言えば、PHP で一般的に使用される操作、つまり複数の配列の共通部分を取得することについて言及する必要があります。

これは配列の比較です。配列を比較することで配列間の共通部分を求めます。では、どのような方法でそれを行うことができるでしょうか?次に見てみましょう。

#array_intersect<strong><span style="font-size: 20px;"></span></strong>関数 - 配列のキー値を比較 PHP には組み込みの

array_intersect

関数があり、配列を比較するときに配列のキー値を比較し、両方のキー値を返すために使用されます。配列の要素、つまり 2 つの配列のキー値を使用した配列。

array_intersect

関数の基本的な構文形式は次のとおりです。 <pre class="brush:php;toolbar:false">array_intersect(array1,array2,array3...);</pre>パラメータ array123 は比較に使用される配列の数を表し、配列1 は他の配列との比較に使用され、配列 2 と 3 は両方とも配列 1 との比較に使用されます。関数が 2 つ以上の配列を比較すると、返される結果は交差配列です。


返された配列には配列 1 と他の配列の共通部分のみがあり、キー名も配列 1 です。つまり、返された配列は配列 1 の一部であり、他の配列は配列 1 のみを使用します。キー値。配列 1 と比較すると、返された配列には表示されません。キー値のみを比較します。

次に、例を通じて array_intersect 関数の適用を見てみましょう。例は次のとおりです:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"purple");
$result=array_intersect($a1,$a2);
print_r($result);
?>

出力結果:


# 上記の例では、2 つの配列が比較されています。ご覧のとおり、配列 1 には配列 2 と同じキー値が 2 つあります。出力結果のキー名はそのままです。配列 1 のキー名。 複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

上の例では 2 つの配列を比較しています。3 つの配列を比較する例を見てみましょう。例は次のとおりです:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"blue","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"blue");
$result=array_intersect($a1,$a2,$a3);
print_r($result);
?>

出力結果:


次に、PHP の array_intersect_key 関数を見てみましょう。この関数は、キー値を比較するのではなく、キー名を比較します。 複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

#array_intersect_key

<strong><span style="font-size: 20px;"></span>関数 - 配列のキー名を比較します</strong> array_intersect_key 関数は

array_intersect

関数とよく似ていますが、比較方法が異なります。 array_intersect_key この関数は、比較することによって同じキー名の交差を取得します。キー名 array_intersect_key関数の基本的な構文形式は次のとおりです:

array_intersect_key(array1,array2,array3...)

パラメータ array123 は、使用される配列の数を表すことに注意してください。他の配列との比較では、配列 2 と 3 の両方が配列 1 との比較に使用されます。関数が 2 つ以上の配列を比較すると、返される結果は交差配列です。

返される関数は

array_intersect
に似ています。返される結果は、配列交差キー名配列 1 の対応するキー値です。キー名のみを比較します。

例を通して array_intersect_key 関数の使用法を見てみましょう。例は次のとおりです:

まず、次のような配列を見てみましょう。キー名を定義せず、インデックスのみを使用する<pre class="brush:php;toolbar:false">&lt;?php $a1=array(&quot;red&quot;,&quot;green&quot;,&quot;blue&quot;,&quot;yellow&quot;); $a2=array(&quot;red&quot;,&quot;green&quot;,&quot;blue&quot;); $result=array_intersect_key($a1,$a2); print_r($result); ?&gt;</pre>出力結果:


#キー値を定義するキー名がある場合、同じです。キー名を比較するだけです。例は次のとおりです。

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"blue","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"blue");
$result=array_intersect_key($a1,$a2,$a3);
print_r($result);
?>
複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)出力結果:


上記の例は次のとおりです。

array_intersect_key複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション) 関数を使用して、キー名を比較して共通部分を取得する操作。

array_intersect_assoc

関数 - 配列のキー名とキー値を比較します<span style="font-size: 20px;"></span>上の 2 つ 1 つの関数はキー値を比較し、もう 1 つはキー名を比較します。これで、PHP は array_intersect_assoc 関数を通じてキー値とキー名を同時に比較できるようになります。つまり、出力結果は次のとおりです。キーの値とキー名が等しい必要があります。

array_intersect_assoc函数的基本语法格式如下:

array_intersect_assoc(array1,array2,array3...)

其中需要注意的是:参数array123表示的就是第几个用来比较的数组,数组1是用来与其他数组进行比较的,数组2和3都是用来与数组1进行比较的。当函数比较两个或者多个数组的时候,返回的结果就是一个交集数组。

这个返回的交集数组,既然键名和键值都是一样的,返回的结果也就不需要争论什么了。

接下来我们通过示例来看一下array_intersect_assoc函数的应用,示例如下:

首先我们还是先来看一下没有定义键名,只通过索引进行的数组

<?php
$a1=array("red","green","blue","yellow");
$a2=array("red","black","blue");
$a3=array("red");
$result=array_intersect_key($a1,$a2,$a3);
print_r($result);
?>

输出结果:

複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

下面我们再来看一下,有自定义键名的数组

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","g"=>"purple");
$a3=array("a"=>"red","b"=>"green","h"=>"blue");
$result=array_intersect_assoc($a1,$a2,$a3);
print_r($result);
?>

输出结果:

複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)

这便是在PHP中可以通过array_intersect函数、array_intersect_keyarray_intersect_assoc函数分别以不同的方法来获取数组之间的交集。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上が複数の配列の積集合を求める 3 つの方法を 5 分で学習します (コレクション)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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