কমন এ্যারে ফাংশনস
পিএইচপিতে এ্যারে নিয়ে কাজ করার জন্য প্রচুর ফাংশন রয়েছে । এগুলোর পূর্নাঙ্গ তালিকা পাওয়া যাবে ম্যানুয়ালে - Array Functions সেকশনে । এই চ্যাপ্টারে আমরা বেশি প্রচলিত কিছু এ্যারে সংশ্লিষ্ট ফাংশন সম্পর্কে জানবো । পরবর্তীতে বাকি এ্যারে ফাংশনগুলোও কাভার করা হবে এখানে ।
এই চ্যাপ্টারটির বেশীরভাগ কন্টেন্ট, বিশেষ করে উদাহরণগুলো পিএইচপি ম্যানুয়াল থেকে নেওয়া । এখানে বাংলায় ব্যখ্যা করা হয়েছে ফাংশনগুলো । নবীনদের জন্য যতটুকু প্রয়োজন ঠিক ততটুকু রাখা হয়েছে । এ্যাডভান্সড কিছু জিনিস ইচ্ছাকৃতভাবেই সংযোজন করা হয়নি ।
উদাহরণগুলোর আউটপুট ইচ্ছাকৃতভাবেই বইতে দেখানো হয়নি । কোড নিজে থেকে রান করে আউটপুট দেখে বোঝার চেষ্টা করার সুযোগ দেওয়ার জন্যই এমনটি করা হয়েছে ।

count()

একটি এ্যারেতে কতগুলি এলিমেন্ট আছে তা জানতে আমরা এই ফাংশনটি ব্যবহার করে থাকি ।
1
<?php
2
3
$array = array(1,2,3);
4
echo count($array);
Copied!
এই ফাংশনটি সেকেন্ড প্যারামিটার হিসেবে COUNT_NORMAL কিংবা COUNT_RECURSIVE কন্সট্যান্ট এ্যাক্সেপ্ট করে । এই প্যারামিটারটি অপশনাল । ডিফল্ট ভ্যালু হিসেবে COUNT_NORMAL থাকে । এই মোডে সে শুধু প্রদত্ত এ্যারের কতগুলো আইটেম আছে সেটা হিসেব করে । যখন আমরা COUNT_RECURSIVE ব্যবহার করি তখন এই ফাংশনটি মাল্টি ডাইমেনশনাল এ্যারের ক্ষেত্রে সব গুলো এ্যারের এলিমেন্ট হিসেব করে । অর্থাৎ মূল এ্যারের মধ্যে অন্য কোন এ্যারে থাকলে সেগুলোর এলিমেন্টও গননায় রাখা হবে ।
1
<?php
2
$food = array('fruits' => array('orange', 'banana', 'apple'),
3
'veggie' => array('carrot', 'collard', 'pea'));
4
5
// রিকার্সিভ মোড
6
echo count($food, COUNT_RECURSIVE); // মোট ৮টি এলিমেন্ট
7
8
// নরমাল মোড
9
echo count($food); // ২টি আইটেম
Copied!

array_key_exists

আমাদের এ্যারেতে নির্দিষ্ট নামের কোন কি আছে কিনা তা জানার জন্য আমরা এই ফাংশনটি ব্যবহার করি । ঐ নামের ফাংশন থাকলে আমরা বুলিয়ান true পাই, আর না থাকলে false
1
<?php
2
$search_array = array('first' => 1, 'second' => 4);
3
if (array_key_exists('first', $search_array)) {
4
echo "The 'first' element is in the array";
5
}
Copied!

array_keys

নাম শুনেই বোঝা যাচ্ছে কোন এ্যারে এর কি গুলো পাবো আমরা এই ফাংশন থেকে । এই ফাংশনটির ২য় প্যারামিটার হিসেবে আমরা একটা ওয়ার্ড দিয়ে দিতে পারি, সেক্ষেত্রে শুধুমাত্র যে সকল কি এর মধ্যে ঐ ওয়ার্ডটি থাকবে সেগুলোই রিটার্ন করবে । ৩য় প্যারামিটারটি হচ্ছে === কম্প্যারিজনের জন্য । অর্থাৎ, এটার ভ্যালু ট্রু হলে আগের দেওয়া ওয়ার্ডটি সার্চ করার সময় টাইপ বিবেচনা করা হবে । ২য় এবং ৩য় প্যারামিটার অপশনাল ।
উদাহরণ:
1
<?php
2
$array = array(0 => 100, "color" => "red");
3
print_r(array_keys($array));
4
5
$array = array("blue", "red", "green", "blue", "blue");
6
print_r(array_keys($array, "blue"));
Copied!

array_values

আগের ফাংশনটির সাথে মিল রেখেই এটি এ্যারের ভ্যালুগুলো রিটার্ন করে । যেমন:
1
<?php
2
$array = array("size" => "XL", "color" => "gold");
3
print_r(array_values($array));
Copied!

in_array

এই ফাংশনটি একটি এ্যারেতে একটি নির্দিষ্ট ভ্যালু আছে কিনা তা জানায় । ৩য় প্যারামিটারটি অপশনাল । বুলিয়ান true পাস করলে সার্চ করার সময় টাইপও ম্যাচ করে ।
1
<?php
2
$os = array("Mac", "NT", "Irix", "Linux");
3
if (in_array("Irix", $os)) {
4
echo "Got Irix";
5
}
6
if (in_array("mac", $os)) {
7
echo "Got mac";
8
}
Copied!

array_pop

এই ফাংশনটি প্রদত্ত এ্যারের শেষ আইটেমটি রিটার্ন করে । এবং একই সাথে ঐ আইটেমটি এ্যারে থেকে রিমুভ করে দেয় ।
উদাহরণ:
1
<?php
2
$stack = array("orange", "banana", "apple", "raspberry");
3
$fruit = array_pop($stack);
4
print_r($stack);
Copied!

array_push

আগের ফাংশনটির ঠিক উল্টো কাজ করে এই ফাংশনটি । এটির কাজ কোন এ্যারের শেষে এক বা একাধিক আইটেম যোগ করা । যেমন:
1
<?php
2
$stack = array("orange", "banana");
3
array_push($stack, "apple", "raspberry");
4
print_r($stack);
Copied!
এই ফাংশনের প্রথম আর্গুমেন্টটি হবে একটি এ্যারে । এরপর আমরা যে এলিমেন্টগুলো যোগ করতে চাই সেগুলো যোগ করবো ।

array_shift

array_pop এ্যারের শেষ থেকে আইটেম বাদ দিতো, array_shift এর কাজ শুরু থেকে বাদ দেওয়া । এটি এ্যারের প্রথম আইটেমটি রিটার্ন করে এবং ঐ আইটেমটি এ্যারেটি থেকে রিমুভ করে দেয় ।
উদাহরণ:
1
<?php
2
$stack = array("orange", "banana", "apple", "raspberry");
3
$fruit = array_shift($stack);
4
print_r($stack);
Copied!

array_unshift

নাম শুনেই বুঝতে পারার কথা এটা কি করে । array_push এর মত করেই এই ফাংশনটি এ্যারের শুরুতে আইটেম যোগ করে । উদাহরণ:
1
<?php
2
$queue = array("orange", "banana");
3
array_unshift($queue, "apple", "raspberry");
4
print_r($queue);
Copied!

array_flip

এই ফাংশনটি এ্যারের কি আর ভ্যালু ইন্টারচেইনজ করে দেয় । অর্থাৎ কি গুলো হয়ে যায় ভ্যালু আর ভ্যালুগুলো হয়ে যায় কি । যেমন:
1
<?php
2
$trans = array("a" => 1, "b" => 1, "c" => 2);
3
$trans = array_flip($trans);
4
print_r($trans);
Copied!

array_reverse

এই ফাংশনটি এ্যারের আইটেমগুলোর অর্ডার বা ক্রমিক উল্টো করে দেয় । অর্থাৎ প্রথম আইটেমটি শেষে আর শেষের আইটেমটি শুরুতে আসে । এবং অন্যান্য আইটেমগুলিও একইভাবে উল্টো অর্ডারে নিয়ে আসা হয় ।
আমরা যদি আইটেমের অর্ডার পরিবর্তন হলেও তার আগের কি এর ভ্যালু ঠিক রাখতে চাই তাহলে ২য় আর্গুমেন্টটির ভ্যালু বুলিয়ান true পাস করলেই হবে ।
1
<?php
2
$input = array("php", 4.0, array("green", "red"));
3
$reversed = array_reverse($input);
4
$preserved = array_reverse($input, true);
5
6
print_r($input);
7
print_r($reversed);
8
print_r($preserved);
Copied!

array_merge

দুই বা ততোধিক এ্যারে মার্জ করে একটি নতুন এ্যারে তৈরি করে এই ফাংশনটি । স্ট্রিং কি এর ক্ষেত্রে যদি একই নামের কি থাকে তবে শেষের এ্যারের একই নামের কি এর ভ্যালু ব্যবহৃত হয় । নিউমেরিক ইনডেক্স এর ক্ষেত্রে আইটেমগুলো একটার পর একটা এ্যাড করে নেয় । কি নিয়ে কোন কনফ্লিক্ট হয় না ।
1
<?php
2
$array1 = array("color" => "red", 2, 4);
3
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
4
$result = array_merge($array1, $array2);
5
print_r($result);
Copied!

array_rand

কোন এ্যারে থেকে এক বা একাধিক র‍‍্যান্ডম আইটেম বেছে নেয় এই ফাংশনটি । ঐ নির্বাচিত আইটেমগুলোর কি রিটার্ন করে । প্রথম প্যারামিটার হিসেবে এ্যারেটি এ্যাক্সেপ্ট করে । ২য় আর্গুমেন্ট হিসেবে আমরা পাস করতে পারি কতগুলো আইটেম বেছে নিবে । ২য় প্যারামিটারটি অপশনাল ।
যখন একটি মাত্র এন্ট্রি বেছে নেয় তখন এই ফাংশনটি সরাসরি তার কি রিটার্ন করে । তবে একাধিক আইটেম এর বেলায় সে কি গুলো একটি এ্যারেতে রিটার্ন করে ।
1
<?php
2
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
3
$rand_keys = array_rand($input, 2);
4
echo $input[$rand_keys[0]] . "\n";
5
echo $input[$rand_keys[1]] . "\n";
Copied!

array_search

একটি এ্যারের ভিতরে সার্চ করার জন্য এই ফাংশনটি ব্যবহৃত হয় । যদি এ্যারেতে ওয়ার্ডটি থাকে তবে ঐ আইটেম এর কি টা রিটার্ন করে । যদি ওয়ার্ডটি স্ট্রিং হয় তবে সার্চটি হবে কেইস সেনসিটিভ । অর্থাৎ আপার কেইস ও লোয়ার কেইস এর ভ্যারিয়েশন তখন ম্যাটার করবে । (Masnun আর masnun তখন এক হবে না) । ২য় প্যারামিটারটি অপশনাল । এটি স্ট্রিক্ট (===) কম্প্যারিজন এর জন্য । এটির ভ্যালু বুলিয়ান true পাস করলে সার্চ করার সময় টাইপও মিলিয়ে দেখা হবে ।
1
<?php
2
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
3
4
$key = array_search('green', $array); // $key = 2;
5
$key = array_search('red', $array); // $key = 1;
Copied!