PHP Arrays
PHP Arrays পর্ব-৫: 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 )
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 )
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 )
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 প্রদর্শন করতেছে।
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 )