$new_array = array_intersect_ukey ($array1, $array2,....,my_function());
my_function() : is the callback function to return integer less than , equal to or greater than zero after comparing the keys. function my_function($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$first=array('One' =>'First','Two'=>'Second','Three'=>'Third','Fourth');
$second=array('1st'=> 'First','Two'=>'2nd','Three'=>'3rd','Fourth');
$result=array_intersect_ukey($first,$second,"my_function");
while (list ($key, $val) = each ($result)) {
echo "$key -> $val <br>";
}
Output is here.
Two -> Second
Three -> Third
0 -> Fourth
Keys of the first index are retained. ( no re-indexing done here) .
This example demonstrates how to use array_intersect_ukey() for case-insensitive key comparison, which is useful in scenarios where key case consistency isn't guaranteed.
function key_compare_func($key1, $key2) {
return strcasecmp($key1, $key2);
}
$array1 = array('a' => 100, 'b' => 200, 'C' => 300);
$array2 = array('A' => 100, 'b' => 200, 'c' => 300);
$result = array_intersect_ukey($array1, $array2, 'key_compare_func');
print_r($result);
Output:
Array
(
[a] => 100
[b] => 200
[C] => 300
)
Filter two arrays to find common keys starting with a specific prefix, using a custom comparison function.
function prefix_compare($key1, $key2) {
if (strpos($key1, 'pre_') === 0 && $key1 === $key2) {
return 0;
}
return $key1 >= $key2 ? 1 : -1;
}
$array1 = array('pre_first' => 'apple', 'pre_second' => 'banana', 'post_third' => 'cherry');
$array2 = array('pre_first' => 'apple', 'second' => 'banana', 'third' => 'cherry');
$result = array_intersect_ukey($array1, $array2, 'prefix_compare');
print_r($result);
Output:
Array
(
[pre_first] => apple
)
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.