PHP Arrays পর্ব-৬: PHP Array Intersection Functions

PHP Array Intersection Functions
PHP Array Intersection Functions

দুই বা ততোধিক array এর মধ্যে common value গুলো বের করার জন্য PHP তে ৮ টি function রয়েছে যেগুলোকে বলা হয় PHP Array Intersection Functions আজকের পর্বে আমরা PHP array Intersection function গুলো নিয়ে আলোচনা করব। চলুন দেখা যাক :

array_intersect() Function

PHP তে দুই বা ততোধিক array এর মধ্যে শুধু common value গুলো বের করার জন্য array_intersect() function টি ব্যবহৃত হয়। অর্থাৎ, প্রথম array এর যেইসব value গুলো অন্য array গুলোর সবগুলোর মধ্যে পাওয়া যাবে , শুধু সেইসব value গুলো বের করবে। চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Output:

Array
(
    [a] => green
    [0] => red
)

Zend Certified PHP Engineering (ZCPE) Course

array_uintersect() Function

PHP তে array_uintersect() function টি array_intersect() function এর মতোই অর্থাৎ, দুই বা ততোধিক array এর মধ্যে শুধু value এর উপর ভিত্তি করে Intersection বা common value গুলো বের করার জন্য ব্যবহৃত হয় । তবে array_uintersect() function কাজটি নিজে করবেনা, বরং user এর supply করা callback function দিয়ে করবে । চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

Output:

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

array_intersect_assoc() Function

PHP তে array_intersect_assoc() function এর কাজ হচ্ছে দুই বা ততোধিক array এর মধ্যে শুধু value এর উপর ভিত্তি করে Intersection বা Common value গুলো বের করবেনা , একই সাথে key এর intersection অর্থাৎ common key ও দেখবে। অর্থাৎ, প্রথম array এর যেইসব value গুলো অন্য array গুলোর যেকোনোটির মধ্যে পাওয়া যায় , আর key গুলো একই (same) হয় শুধু সেইসব value গুলো বের করার জন্য PHP তে array_intersect_assoc() function টি ব্যবহৃত হয়।। চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

Output:

Array
(
    [a] => green
)

Zend Certified PHP Engineering (ZCPE) Course

array_intersect_uassoc() Function

PHP তে array_intersect_uassoc() function টি array_intersect_assoc() ফাঙ্কশনের মতোই। অর্থাৎ, key এবং value দুইটাই মিল আছে কিনা তা দেখে। তবে array এর key গুলোকে চেক করার জন্য array_intersect_uassoc() function নিজে করবেনা, বরং user এর supply করা callback function দিয়ে করবে । চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

Output:

Array
(
    [b] => brown
)

array_uintersect_assoc() Function

PHP তে array_uintersect_assoc() function টি array_intersect_assoc() ফাঙ্কশনের মতোই। অর্থাৎ, key এবং value দুইটাই মিল আছে কিনা তা দেখে। তবে array এর মধ্যে key গুলোকে array_uintersect_assoc() ফাঙ্কশন (Built-in) নিজে check করবে। আর value গুলোকে user এর supply করা callback function দিয়ে Intersection বা সমতা চেক করবে। চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

Output:

Array
(
    [a] => green
)

array_uintersect_uassoc() Function

PHP তে array_uintersect_uassoc() function টি array_uintersect_assoc() ফাঙ্কশনের মতোই। অর্থাৎ, key এবং value দুইটারই ভিত্তিতেই Intersection বের করা যায়। তবে array এর মধ্যে key এবং value উভয়কেই আলাদা আলাদা user এর supply করা callback function দিয়ে Intersection বের করবে। চলুন একটা উদাহরণ দেখা যাক :

<?php
function myfunction_key($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}

function myfunction_value($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"red","b"=>"green","c"=>"green");

$result=array_uintersect_uassoc($a1,$a2,"myfunction_key","myfunction_value");
print_r($result);
?>

Output

Array ( 
[a] => red 
[b] => green 
)

Zend Certified PHP Engineering (ZCPE) Course

array_intersect_key() function

দুই বা ততোধিক array এর মধ্যে শুধু key এর উপর ভিত্তি করে Intersection করবে অর্থাৎ, প্রথম array এর যেইসব key গুলো অন্য array গুলোর যেকোনোটির মধ্যে পাওয়া যাবে শুধু সেইসব key এর value গুলো আলাদা ভাবে বের করার জন্য PHP তে array_intersect_key() function টি ব্যবহৃত হয়। চলুন একটা উদাহরণ দেখা যাক :

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);
echo "<pre>";
print_r(array_intersect_key($array1, $array2));
echo "</pre>";
?>

Output:

Array
(
    [blue] => 1
    [green] => 3
)

array_intersect_ukey() function

array_intersect_ukey() function টি array_intersect_key() ফাঙ্কশনের মতোই দুই বা ততোধিক array এর মধ্যে শুধু key এর উপর ভিত্তি করে Intersection করবে , তবে সেটা array_intersect_ukey() function নিজে করবেনা, বরং user এর supply করা callback function দিয়ে করবে । চলুন একটা উদাহরণ দেখা যাক :

<?php
function myfunction($a,$b)
{
if ($a===$b)
  {
  return 0;
  }
  return ($a>$b)?1:-1;
}

$a1=array("a"=>"red","b"=>"green","c"=>"blue");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");

$result=array_intersect_ukey($a1,$a2,"myfunction");
echo "<pre>";
print_r($result);
echo "</pre>"
?>

Output:

Array
(
    [a] => red
    [b] => green
)

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

Leave a Reply