PHP Arrays পর্ব-২ : PHP Array General Functions

php array general functions
php array general functions

প্রিয় পাঠক, PHP Array দ্বিতীয় পর্বে আপনাদেরকে আবারো স্বাগতম, এই পর্বে আমরা PHP array এর কিছু General function নিয়ে বিস্তারিত আলোচনা করব। চলুন দেখা যাক :

PHP array এর মধ্যের মান (Value) গুলো প্রিন্ট করার জন্য কত গুলো উপায় আছে?

PHP array এর মধ্যের মান (Value) গুলো প্রিন্ট করার জন্য অনেক গুলো উপায় আছে চলুন একটা একটা করে দেখা যাক:

foreach() function এর মাধ্যমে:

PHP foreach() function এর মাধ্যমে আমরা খুব সহজেই array এর key এবং value গুলোকে print করতে পারি, চলুন প্রথমে foreach() function এর syntax দেখা যাক :

Syntax-1

foreach (array_expression as $value){
    statement
}

উপরের Syntax অনুযায়ী আপনি শুধু array এর value গুলোকে Print করতে পারবেন। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
<?php
$array=["a"=>"America","b"=>"Bangladesh","c"=>"Canada","e"=>"England"];
foreach($array as $value){
    echo $value,"\n";
    }
?>

Output

America
Bangladesh
Canada
England

Syntax-2

foreach (array_expression as $key => $value){
    statement
}

উপরের Syntax অনুযায়ী আপনি array এর key এবং value উভয়ই Print করতে পারবেন। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$array=["a"=>"America","b"=>"Bangladesh","c"=>"Canada","e"=>"England"];
foreach($array as $key=>$value){
    echo $key."=".$value,"\n";
    }

Output

a=America
b=Bangladesh
c=Canada
e=England

Syntax-3

foreach (array_expression as $key => $value):
    statement
endforeach;

উপরের Syntax অনুযায়ী আপনি array এর key এবং value উভয়ই Print করতে পারবেন। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$array=["a"=>"America","b"=>"Bangladesh","c"=>"Canada","e"=>"England"];
foreach($array as $key=>$value):
    echo $key."=".$value,"\n";
    endforeach;

Output

a=America
b=Bangladesh
c=Canada
e=England

Zend Certified PHP Engineering (ZCPE) Course

while loop এ list() function এবং each() function ব্যবহার করার মাধ্যমে

Note:PHP list ফাঙ্কশনের কাজ হচ্ছে array এর প্রত্যেকটি value কে variable এ assign করা।

Note:PHP each ফাঙ্কশনের কাজ হচ্ছে array এর current key এবং value রিটার্ন করা ।

<?php
$student=["name"=>"Nahid bin Azhar","age"=>34,"address"=>"Dhaka,Bangladesh"];
while (list($key, $value) = each($student)) {
    echo "$key : $value \n";
}

Result:

name : Nahid bin Azhar 
age : 34 
address : Dhaka,Bangladesh 

Associative Array কে extract function এর মাধ্যমে:

<?php
$student=["name"=>"Nahid bin Azhar","age"=>34,"address"=>"Dhaka,Bangladesh"];
extract($student);
echo "Name: $name, Age: $age, Address: $address";

Result:

Name: Nahid bin Azhar, Age: 34, Address: Dhaka,Bangladesh

Numerical Array তে extract() function এর সাথে prefix ব্যবহার করার মাধ্যমে :

<?php
$student=["Nahid bin Azhar",34,"Dhaka,Bangladesh"];
extract($student,EXTR_PREFIX_ALL,"a");
echo "Name: $a_0, Age: $a_1, Address: $a_2";

Result:

Name: Nahid bin Azhar, Age: 34, Address: Dhaka,Bangladesh

Zend Certified PHP Engineering (ZCPE) Course

PHP foreach() function দিয়ে কি Nested Array প্রিন্ট করা যাবে?

অবশ্যই যাবে, চলুন কয়েকটি technique দেখে নেয়া যাক :

Technique-১: Nested foreach ব্যবহার করার মাধ্যমে :

<?php
$students=[
    ["name"=>"Mamnun Bin Masud","age"=>4],
    ["name"=>"Muhibbullah Bin Masud", "age"=>3],
    ["name"=>"Taha Alam","age"=>3.5]
    ];
foreach($students as $singleArray){
    foreach($singleArray as $key=>$value){
        echo "$key : $value \n";
    }
}

Output

name : Mamnun Bin Masud 
age : 4 
name : Muhibbullah Bin Masud 
age : 3 
name : Taha Alam 
age : 3.5 

উপরের উদাহরণে আমরা Nested Array এর জন্য Nested foreach loop ব্যবহার করেছি।

Technique-২: Associative Nested Array তে extract() function ব্যবহার করার মাধ্যমে :

Note:extract() function এর কাজ হচ্ছে associative array এর key গুলোকে variable এ রূপান্তর করে।

<?php
$students=[
    ["name"=>"Mamnun Bin Masud","age"=>4],
    ["name"=>"Muhibbullah Bin Masud", "age"=>3],
    ["name"=>"Taha Alam","age"=>3.5]
    ];
foreach($students as $singleArray){
   extract($singleArray);
   echo "Name: $name, Age: $age \n";
}

Output

Name: Mamnun Bin Masud, Age: 4 
Name: Muhibbullah Bin Masud, Age: 3 
Name: Taha Alam, Age: 3.5 

Technique-৩: Numerical Nested Array তে extract() function এর সাথে prefix ব্যবহার করার মাধ্যমে :

<?php
$students=[
    ["Mamnun Bin Masud",4],
    ["Muhibbullah Bin Masud",3],
    ["Taha Alam",3.5]
    ];
foreach($students as $singleArray){
   extract($singleArray,EXTR_PREFIX_ALL,"a");
   echo "Name: $a_0, Age: $a_1 \n";
}

Output

Name: Mamnun Bin Masud, Age: 4 
Name: Muhibbullah Bin Masud, Age: 3 
Name: Taha Alam, Age: 3.5 

Technique-৪: foreach function এর মধ্যে list function ব্যবহার করার মাধ্যমে।

<?php
$students=[
    ["Mamnun Bin Masud",4],
    ["Muhibbullah Bin Masud",3],
    ["Taha Alam",3.5]
    ];
foreach ($students as list($name, $age)) {
    // $a contains the first element of the nested array,
    // and $b contains the second element.
    echo "Name: $name, Age: $age\n";
}

Output:

তবে এই পদ্ধতি শুধু numerical Nested Array এর জন্য প্রযোজ্য হবে, Associative Nested Array এর জন্য কাজ করবেনা।

Name: Mamnun Bin Masud, Age: 4
Name: Muhibbullah Bin Masud, Age: 3
Name: Taha Alam, Age: 3.5

Zend Certified PHP Engineering (ZCPE) Course

PHP count(), reset(), end(), current(), key(), next()এবং prev()

তা ছাড়া নিচের Technique দিয়েও আপনি যেকোনো array কে iterate করতে পারবেন। আর এর জন্য আপনাকে PHP array এর count(), reset(), end(), current(), key(), next(), prev() ফাঙ্কশন গুলো ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক।

<?php
$input = array("o"=>"oranges", "a"=>"apples", "p"=>"pears","m"=>"Mango","b"=>"Banana");
reset($input);
for($i=0;$i<count($input);$i++){
    echo key($input)."=".current($input),"\n";
    next($input);
}
echo "=================================\n";
end($input);
for($i=count($input);$i>0;$i--){
    echo key($input)."=".current($input),"\n";
    prev($input);
}

Result

o=oranges
a=apples
p=pears
m=Mango
b=Banana
=================================
b=Banana
m=Mango
p=pears
a=apples
o=oranges

উল্লেখ্য, উপরের উদাহরণে count()টির কাজ হচ্ছে array total element কতটি তা count করা, reset() টির কাজ হচ্ছে array টিকে reset করা অর্থাৎ array pointer কে শুরুতে নিয়ে যাওয়া। current() টির কাজ হচ্ছে array এর current value রাখা। key() টির কাজ হচ্ছে array এর current key রাখা। next() টির কাজ হচ্ছে array এর pointer কে একধাপ পরের ভ্যালু কে value তে point করা এবং prev() টির কাজ হচ্ছে array এর pointer কে একধাপ আগের value তে point করা

PHP Array count() function

PHP Array তে total element সংখ্যা কত তা জানার জন্য count() function ব্যবহার করা হয়। চলুন উদাহরণ দিয়ে বুঝা যাক :

<?php
$arr = array("a"=>'coffee', 'brown', 'caffeine',5,3.4,true);
#Result: 6
echo count($arr);

PHP Nested Array এর element কিভাবে count করব?

PHP Nested Array তে total element সংখ্যা কত তা জানার জন্য count() function ই ব্যবহার করতে হয়, তবে count এর দ্বিতীয় parameter কে true করে দিতে হয় অথবা COUNT_RECURSIVE এই Built in constant টি দিতে হয় । চলুন উদাহরণ দিয়ে বুঝা যাক :

<?php
$students=[
    ["name"=>"Mamnun Bin Masud","age"=>4],
    ["name"=>"Muhibbullah Bin Masud", "age"=>3],
    ["name"=>"Taha Alam","age"=>3.5]
    ];
#Result: 9
echo count($students,1);
echo "\n";
#Result: 9
echo count($students,true);
echo "\n";
#Result: 9
echo count($students,COUNT_RECURSIVE);

Zend Certified PHP Engineering (ZCPE) Course

PHP array array_count_values() function

PHP array এর মধ্যে কোন value টি কতবার আছে তা জানার জন্য আপনি array_count_values() function টি ব্যবহার করতে পারেন। নিচের উদাহরণটি দেখুন :

<?php
$arr = array(1,3,2,1,5,6,1,2,3);

print_r(array_count_values($arr));

Result:

Array
(
    [1] => 3
    [3] => 2
    [2] => 2
    [5] => 1
    [6] => 1
)

PHP array_keys() এবং array_values() function

php তে কোনো array এর শুধু column name গুলোকে নিয়ে আলাদা array করতে চাইলে আপনাকে array_keys এবং শুধু value গুলোকে নিয়ে আলাদা array করতে চাইলে আপনাকে array_values function টি ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$student= ["name"=>"Mamnun Bin Masud","age"=>4,"mobile"=>"01766882299"];

echo "Print Only Array Keys\n";
print_r(array_keys($student));
echo "\n";
echo "Print Only Array Values\n";
print_r(array_values($student));

Output

Print Only Array Keys
Array
(
    [0] => name
    [1] => age
    [2] => mobile
)

Print Only Array Values
Array
(
    [0] => Mamnun Bin Masud
    [1] => 4
    [2] => 01766882299
)

PHP array_sum() এবং array_product() function

php তে কোনো array এর সব গুলো value এর যোগফল বের করতে চাইলে আপনাকে array_sum() function এবং array এর সব গুলো value এর গুনফল বের করতে চাইলে আপনাকে array_product() function টি ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$arr = array(1,2,3,4,5,6);

echo "Summation of all Array Element: ";
print_r(array_sum($arr));

echo "\n";
echo "Multiplication of all array Element: ";
print_r(array_product($arr));

Output

Summation of all Array Element: 21
Multiplication of all array Element: 720

Zend Certified PHP Engineering (ZCPE) Course

PHP array_flip() এবং array_reverse() function

php তে কোনো array এর key গুলোকে value তে রূপান্তর অথবা value গুলোকে key তে রূপান্তর করতে চাইলে আপনাকে array_flip() function এবং array এর সব গুলো value কে বিপরীত দিক থেকে সাজাতে চাইলে আপনাকে array_reverse() function টি ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$input = array("oranges", "apples", "pears");
echo "Exmple of array_flip() Function\n";
$flipped = array_flip($input);

print_r($flipped);

echo "Exmple of array_reverse() Function\n";

$reversed = array_reverse($input);

print_r($reversed);
?>

Output

Exmple of array_flip() Function
Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)
Exmple of array_reverse() Function
Array
(
    [0] => pears
    [1] => apples
    [2] => oranges
)

তবে array তে একই value যদি একাধিক বার থাকে , সেক্ষেত্রে শুধু শেষ value টি key হিসেবে থাকবে , অন্য গুলো replace হয়ে যাবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);

print_r($flipped);
?>
Array
(
    [1] => b
    [2] => c
)

PHP array_rand () এবং shuffle() function

php তে কোনো array এর value গুলো থেকে এক বা একাধিক value কে (এলো-মেলো করে ) randomly পিক (বের) করতে চাইলে আপনাকে array_rand() function এবং array এর সব গুলো value কে এলো-মেলো (shuffling) করতে চাইলে আপনাকে shuffle() function টি ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$input = array("oranges", "apples", "pears","Mango","Banana");
echo "Exmple of array_rand() Function\n";
$randomly_pick = array_rand($input,2);

echo $randomly_pick[0],"\n",$randomly_pick[1],"\n";

echo "Exmple of shuffle() Function\n";

shuffle($input);

print_r($input);

Possible results

Exmple of array_rand() Function
1
4
Exmple of shuffle() Function
Array
(
    [0] => pears
    [1] => oranges
    [2] => Mango
    [3] => apples
    [4] => Banana
)

PHP array_key_exists() এবং in_array() function

php তে array এর মধ্যে কোনো নির্দিষ্ট value আছে কিনা তা চেক করতে চাইলে আপনাকে in_array() function এবং array এর মধ্যে কোনো key আছে কিনা তা চেক করতে চাইলে আপনাকে array_key_exists() function টি ব্যবহার করতে হবে। চলুন উদাহরণ দিয়ে বুঝে নেয়া যাক :

<?php
$fruits= ["a"=>"Apple","b"=>"Banana","c"=>"Cadbury"];

echo in_array("Apple",$fruits)?"Yes, Apple is available":"Not Available";
echo "\n";
echo array_key_exists("b",$fruits)?"Yes, b key is available":"Not Available";

Result:

Yes, Apple is available
Yes, b key is available

উল্লেখ্য, in_array() function এর তৃতীয় Parameter যদি true দেওয়া হয়, তাহলে letter case সহ চেক করবে।

PHP extract() এবং compact function

PHP তে array এর key গুলোকে variable এ রূপান্তর করার জন্য extract() function ব্যবহৃত হয়, আবার PHP Page এর মধ্যে অবস্থিত Variable গুলোকে array element এ রূপান্তর করার জন্য compact() function ব্যবহৃত হয়। চলুন প্রথমে compact() function এর ব্যবহার দেখা যাক :

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$result = compact("city", "state", "event");
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Result

Array
(
    [city] => San Francisco
    [state] => CA
    [event] => SIGGRAPH
)

আবার আপনি চাইলে সব গুলো variable এর নামকে একটা array হিসেবে পাঠাতে পারেন :

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state","event");
$result = compact($location_vars);
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Result

Array
(
    [city] => San Francisco
    [state] => CA
    [event] => SIGGRAPH
)

আবার আপনি চাইলে কিছু variable এর নামকে একটা array হিসেবে পাঠাতে পারেন এবং কিছু variable আলাদা ভাবে দিতে পারেন :

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);
echo "<pre>";
print_r($result);
echo "</pre>";
?>

Result

Array
(
    [city] => San Francisco
    [state] => CA
    [event] => SIGGRAPH
)

Zend Certified PHP Engineering (ZCPE) Course

এবার চলুন extract() function এর ব্যবহার দেখা যাক

<?php
$input = array("o"=>"oranges", "a"=>"apples", "p"=>"pears","m"=>"Mango","b"=>"Banana");
extract($input);
echo $o,"\n";
echo $a,"\n";
echo $p,"\n";
echo $m,"\n";
echo $b,"\n";

Result

oranges
apples
pears
Mango
Banana

আপনি যদি যেকোনো numerical array কে extract করতে চান সেক্ষেত্রে আপনাকে Extra একটা Prefix (EXTR_PREFIX_ALL) যোগ করে দিতে হবে, ঠিক নিচের মত।

<?php
$input = array("oranges", "apples", "pears","Mango","Banana");
extract($input,EXTR_PREFIX_ALL,"a");
echo $a_0,"\n";
echo $a_1,"\n";
echo $a_2,"\n";
echo $a_3,"\n";
echo $a_4,"\n";

Result

oranges
apples
pears
Mango
Banana

আবার যদি Page এ already আছে এমন কোনো variable কে replace হওয়া থেকে বিরত রাখতে চান সেক্ষেত্রেও আপনাকে Extra একটা Prefix যোগ করে দিতে হবে, ঠিক নিচের মত।

<?php
$event = "Wedding";
$locations = array("city"=>"San Francisco", "state"=>"CA","event"=>"Birthday Party");
extract($locations,EXTR_PREFIX_SAME,"a");
echo "City: ".$city;
echo "<br>";
echo "State: ".$state;
echo "<br>";
echo "Event in Array: ".$a_event;
echo "<br>";
echo "Event in Page: ".$event;

?>

Result

City: San Francisco
State: CA
Event in Array: Birthday Party
Event in Page: Wedding

PHP range() এবং array_unique function

PHP তে Number অথবা letter দিয়ে নির্দিষ্ট range এর array তৈরী করার জন্য আপনাকে range() function এবং একটি array এর মধ্যে অবস্থিত value গুলোর মধ্যে unique value নিয়ে নতুন array তৈরী করার জন্য array_unique() function ব্যবহার করতে হবে। যেমন:

<?php
$numbers=range(5,10);
echo "Ascending Order: \n";
print_r($numbers);
echo "\n";
echo "Descending Order: \n";
$numbers2=range(10,5);
print_r($numbers2);

$letters=range("a","f");
echo "Ascending Order: \n";
print_r($letters);
echo "\n";
echo "Descending Order: \n";
$letters2=range("f","a");
print_r($letters2);

Result

Ascending Order: 
Array
(
    [0] => 5
    [1] => 6
    [2] => 7
    [3] => 8
    [4] => 9
    [5] => 10
)

Descending Order: 
Array
(
    [0] => 10
    [1] => 9
    [2] => 8
    [3] => 7
    [4] => 6
    [5] => 5
)
Ascending Order: 
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)

Descending Order: 
Array
(
    [0] => f
    [1] => e
    [2] => d
    [3] => c
    [4] => b
    [5] => a
)

array_unique() function example

<?php
$arr=[1,3,2,4,1,2,5];
$unique=array_unique($arr);
print_r($unique);

Result

Array
(
    [0] => 1
    [1] => 3
    [2] => 2
    [3] => 4
    [6] => 5
)

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম 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