<span class="hljs-meta"><?php<br>
// This section is unrelated to the article, used only to show separation<br>
echo "The article starts as follows...";<br>
?></p>
<p><hr></p>
<p># How to Use the array_intersect Function to Determine If Two Arrays Have Common Elements: Code Examples and Detailed Explanation<span></p>
<p>In daily PHP development, we often need to check if two arrays share common elements. For example, in scenarios like permission control, tag matching, and keyword filtering, it’s important to quickly determine if arrays intersect. The <code>array_intersect
$array1: Required. The first array to compare.
$array2: Required. The second array to compare.
...$arrays: Optional. Additional arrays to include in the comparison.
Return value: A new array containing all intersecting elements.
The approach is simple:
Use array_intersect to get the intersection of the two arrays.
If the resulting array is not empty, the arrays intersect; otherwise, they do not.
Here’s a simple example demonstrating how to check if two arrays intersect:
<span><span><span class="hljs-meta"><?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 class="hljs-number">2</span></span>, </span><span><span class="hljs-number">3</span></span>, </span><span><span class="hljs-number">4</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 class="hljs-number">5</span></span>, </span><span><span class="hljs-number">6</span></span>, </span><span><span class="hljs-number">7</span></span>, </span><span><span class="hljs-number">8</span></span><span>];
</span><span><span class="hljs-comment">// Get intersection using 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 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">"The arrays intersect. Common elements: "</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">"The arrays do not intersect"</span></span><span>;
}
</span></span>
Output:
<span><span>The arrays intersect. Common elements: </span><span><span class="hljs-title class_">Array</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 class="hljs-number">4</span></span><span>] => </span><span><span class="hljs-number">5</span></span><span> )
</span></span>
As shown, the intersection of $array1 and $array2 is [4, 5], so the result is not empty.
Sometimes, we only care whether there is an intersection and not the specific elements. In that case, the logic can be simplified:
<span><span><span class="hljs-meta"><?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 class="hljs-string">'banana'</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 class="hljs-string">'peach'</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 class="hljs-variable">$array2</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Intersection exists"</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">"No intersection"</span></span><span>;
}
</span></span>
This provides a more direct result.
Permission Validation
Take the intersection of user roles array and system permissions array. If not empty, the user has access rights.
Tag Matching
Take the intersection of user interest tags and content tags. If they intersect, recommend relevant content.
Keyword Filtering
Take the intersection of user-entered keywords array and sensitive words array. If any overlap exists, prompt or block accordingly.
array_intersect efficiently finds the intersection of multiple arrays.
Checking if the intersection is empty determines whether two arrays share any elements.
It’s widely applicable in permissions, recommendation systems, and content filtering in real-world applications.
By leveraging array_intersect, we can implement powerful logic with minimal code, greatly improving development efficiency.
<span></span>