Tác dụng của hàm array_uintersect()
The array_uintersect()
function compares the values of two or more arrays and returns the matches using a user-defined value comparison function.
This is unlike array_intersect()
which uses an internal function for comparing the values. Also, the keys are not considered in the comparison, only the values are checked.
The following table summarizes the technical details of this function.
Return Value: | Returns an array containing all the elements from array1 whose values are present in all of the other arrays. |
---|---|
Version: | PHP 5+ |
Syntax
The basic syntax of the array_uintersect()
function is given with:
The following example shows the array_uintersect()
function in action.
Example
Run this code »<?php
// Define value Comparison function
function compare($a, $b){
// Converting value to lowercase
$a = strtolower($a);
$b = strtolower($b);
if($a == $b){
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Sample arrays
$array1 = array("apple", "ball", "cat", "dog", "elephant");
$array2 = array("alligator", "DOG", "elephant", "lion", "Cat");
// Computing the intersection
$result = array_uintersect($array1, $array2, "compare");
print_r($result);
?>
Note: The value comparison function must return an integer equal to zero if both values are equal, an integer less than zero if the first value is less than the second value, and an integer greater than zero if the first value is greater than the second value.
Parameters
The array_uintersect()
function accepts the following parameters.
Parameter | Description |
---|---|
array1 | Required. Specifies the array to compare from. |
array2 | Required. Specifies an array to compare against. |
... | Optional. Specifies more arrays to compare against. |
value_compare_function | Required. Specifies a callback function to use for value comparison. |
More Examples
Here're some more examples showing how array_uintersect()
function actually works:
The following example shows how to compare the values of three arrays and get the matches using the PHP's built-in strcasecmp()
function as value comparison function.
Example
Run this code »<?php
// Sample arrays
$array1 = array("apple", "ball", "cat", "dog");
$array2 = array("Apple", "Cat", "Elephant");
$array3 = array("APPLE", "BANANA", "CAT");
// Computing the intersection
$result = array_uintersect($array1, $array2, $array3, "strcasecmp");
print_r($result);
?>
You can also use associative arrays, however the keys are not considered in the comparison.
Example
Run this code »<?php
// Sample arrays
$array1 = array("a"=>"red", "b"=>"green", "c"=>"blue", "d"=>"yellow");
$array2 = array("x"=>"black", "y"=>"BLUE", "z"=>"Red");
// Computing the intersection
$result = array_uintersect($array1, $array2, "strcasecmp");
print_r($result);
?>