現在の位置: ホーム> 最新記事一覧> array_intersect関数を使用して、2つの配列間に交差があるかどうかを判断する方法は?コードの例とアイデアの詳細な説明

array_intersect関数を使用して、2つの配列間に交差があるかどうかを判断する方法は?コードの例とアイデアの詳細な説明

gitbox 2025-09-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// コンテンツのこの部分は記事とは何の関係もありません,ディスプレイの分離にのみ使用されます</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"記事は次のように始まります..."</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-comment"># 使い方array_intersect関数は、2つの配列間に交差があるかどうかを決定します?コードの例とアイデアの詳細な説明</span></span><span>

存在する PHP 毎日の開発において,私たちはしばしばそのようなニーズに遭遇します:判断两个数组中是否存存在する相同的元素。比如存在する权限控制、タグマッチング、キーワードフィルタリングおよびその他のシナリオ,どちらも2つの配列の間に交差があるかどうかをすばやく見つける必要があります。現時点では,`array_intersect` 機能は非常に便利なツールです。

</span><span><span class="hljs-comment">## 1つ、array_intersect 関数の紹介</span></span><span>

`array_intersect` 関数はです:返回两个或多个数组中都存存在する的值。言い換えると,配列の値を比較します,然后输出1つ个新的数组,其中包含所有出现存在する所有参数数组中的元素。

基本的な構文は次のとおりです:

```php
</span><span><span class="hljs-title function_ invoke__">array_intersect</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array2</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> ...</span><span><span class="hljs-variable">$arrays</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
  • $ array1 :必須パラメーター、比較する最初の配列。

  • $ array2 :必要なパラメーター、比較する2番目の配列。

  • ... $配列:オプションのパラメーター、比較に参加する必要があるより多くの配列。

  • 返品値:すべての交差要素を含む新しい配列。

2。2つの配列間に交差があるかどうかを判断するためのアイデア

アイデアは非常にシンプルです:

  1. array_intersectを使用して、2つの配列の交差点を取得します。

  2. 結果配列が空でない場合、それは交差点があることを意味します。そうでなければ、それは存在しません。

3。コードの例

2つの配列が交差点を持っているかどうかを判断する方法を示す簡単な例を次に示します。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>, </span><span><span class="hljs-number">7</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>];

</span><span><span class="hljs-comment">// 使用 array_intersect 交差点を取得します</span></span><span>
</span><span><span class="hljs-variable">$intersection</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_intersect</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$intersection</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"两个数组存存在する交集,交差点要素はです: "</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$intersection</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"2つの配列間に交差はありません"</span></span><span>;
}
</span></span>

出力の結果は次のとおりです。

 <span><span>两个数组存存在する交集,交差点要素はです: </span><span><span class="hljs-title class_">Array</span></span><span> ( [</span><span><span class="hljs-number">3</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span> [</span><span><span class="hljs-number">4</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span> )
</span></span>

ご覧のとおり、配列$ array1$ array2の交差点は[4、5]であるため、返された結果は空ではありません。

4.さらに最適化された判断方法

場合によっては、特定の交差点要素ではなく、交差点があるかどうかのみを気にします。これにより、ロジックが簡素化できます。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-string">'orange'</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">'grape'</span></span><span>, </span><span><span class="hljs-string">'peach'</span></span><span>, </span><span><span class="hljs-string">'banana'</span></span><span>];

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">array_intersect</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"存存在する交集"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"不存存在する交集"</span></span><span>;
}
</span></span>

これにより、より直感的になります。

5。アプリケーションシナリオの例

  1. 許可確認<br> ユーザーロールアレイは、システム許可配列と交差します。空でない場合、ユーザーがアクセス権を持っていることを意味します。

  2. タグマッチング<br> ユーザーの関心タグとコンテンツタグは交差し、それらが存在する場合、関連するコンテンツが推奨されます。

  3. キーワードフィルタリング<br> ユーザーが入力したキーワード配列と敏感な単語配列は交差しています。交差点がある場合、それは促しまたは傍受します。

6。概要

  • array_intersectは、複数の配列の交差点を効率的に見つけることができます。

  • 交差点が空であるかどうかを判断することにより、2つの配列に同じ要素があるかどうかを確認できます。

  • これは、許可、推奨システム、コンテンツフィルタリングなどの実際のビジネスで広く使用されています。

Array_intersectを合理的に利用することにより、ミニマリストコードを使用して強力な論理的判断を達成し、それにより開発効率を大幅に改善できます。

 <span></span>