PHP Arrays পর্ব-৫: PHP Array Difference Functions

PHP Array Difference Functions

PHP Array Difference Functions

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

array_diff() Function

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

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

Output:

Array
(
    [1] => blue
)

Zend Certified PHP Engineering (ZCPE) Course

array_udiff() Function

PHP তে array_udiff() function টি array_diff() function এর মতোই অর্থাৎ, দুই বা ততোধিক array এর মধ্যে শুধু value এর উপর ভিত্তি করে Difference বের করার জন্য ব্যবহৃত হয় । তবে array_udiff() 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","e"=>"blue","yellow");
$a2=array("A"=>"red","b"=>"GREEN","yellow","black");
$a3=array("a"=>"green","b"=>"red","yellow","black");

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

Output:

Array
(
    [e] => blue
)

array_diff_assoc() Function

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

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

Output:

Array
(
    [b] => brown
    [d] => blue
    [0] => red
)

Zend Certified PHP Engineering (ZCPE) Course

array_diff_uassoc() Function

PHP তে array_diff_uassoc() function টি array_diff_assoc() ফাঙ্কশনের মতোই। অর্থাৎ, key এবং value দুইটারই ভিত্তিতেই Difference বের করা যায়। তবে array এর key গুলোকে চেক করার জন্য array_diff_uassoc() 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","f"=>"blue");
$a2=array("a"=>"red","b"=>"green","d"=>"blue");
$a3=array("e"=>"yellow","a"=>"red","d"=>"blue");

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

Output:

Array
(
    [f] => blue
)

array_udiff_assoc() Function

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

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

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

$result=array_udiff_assoc($a1,$a2,"myfunction");
print_r($result);
?>

Output:

Array
(
    [b] => green
    [e] => blue
)

Zend Certified PHP Engineering (ZCPE) Course

array_udiff_uassoc() Function

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

<?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","f"=>"blue");
$a2=array("a"=>"red","b"=>"green","e"=>"blue");

$result=array_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value");
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Output:

Array
(
    [f] => blue
)

array_diff_key() function

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

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

Output:

Array
(
    [red] => 2
    [purple] => 4
)

ব্যাখ্যা: লক্ষ্য করুন, প্রথম array এর red এবং purple key দুটি অন্য array গুলোর মধ্যে পাওয়া না যাওয়ায় Output হিসেবে শুধু red এবং purple প্রদর্শন করতেছে।

Zend Certified PHP Engineering (ZCPE) Course

array_diff_ukey() function

array_diff_ukey() function টি array_diff_key() ফাঙ্কশনের মতোই দুই বা ততোধিক array এর মধ্যে শুধু key এর উপর ভিত্তি করে Difference বের করবে , তবে সেটা array_diff_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","d"=>"blue","f"=>"Cyan");
$a2=array("a"=>"blue","b"=>"black","e"=>"blue");

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

Output:

Array
(
    [d] => blue
    [f] => Cyan
)
Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।

Leave a Reply