বাংলায় পিএইচপি নিয়ে কিছুমিছু
পিএইচপি বেসিকস ৮: অ্যারে
ভ্যারিয়েবল নিয়ে আলোচনার একদম শুরুতেই আমরা বলেছিলাম যে পিএইচপিতে (শুধু পিএইচপি না, প্রায় সব প্রোগ্রামিং ল্যাংগুয়েজেই) অ্যারে নামে একটি কালেকশন রয়েছে, যার কাজ হচ্ছে একগুচ্ছ ডাটা স্টোর করা। একটি ভ্যারিয়েবল যেমন একক ডেটা স্টোর করে, অ্যারে কে আপনি ভাবতে পারেন একটি অ্যারে আসলে অনেকগুলো ভ্যারিয়েবলের সমষ্টি (সহজ কথায়)। পিএইচপি তে অ্যারে খুবই গুরুত্বপূর্ন এবং অ্যারে সংক্রান্ত অনেক মজার মজার ফাংশন রয়েছে পিএইচপিতে। এই পোস্টে চলুন আমরা পরিচিত হই অ্যারের সাথে। পিএইচপিতে অ্যারে ডিক্লেয়ার করা লাগে array() ফাংশন দিয়ে
<?php //filename: /home/hasin/www/array1.php $MyArray = array(11,12,13,14,15); print_r($MyArray); ?>
উপরের কোডটুকু রান করলে আমরা দেখব স্ক্রিনে পাঁচটি এলিমেন্ট সহ এই অ্যারে টি প্রিন্ট হয়েছে। লাইন # ৩ এ array() ফাংশন দি্যে আমরা $MyArray নামে একটি অ্যারে তৈরী করেছি যাতে আমরা 11,12,13,14 এবং 15 এই পাঁচটি এলিমেন্ট রেখেছি। এখন অ্যারে নিয়ে আরো কথা বলার আগে দুটো জিনিস সম্বন্ধে ধারনা পরিষ্কার করা দরকার। পিএইচপিতে অন্য প্রোগ্রামিং ল্যাংগুয়েজের মত অ্যারের সাইজ (অর্থাৎ অ্যারে তে সর্বোচ্চ কয়টি এলিমেন্ট থাকবে) তা বলতে হয় না। এটা ডাইনামিক ভাবে বাড়তে থাকে। আপনি যত ইচ্ছা এলিমেন্ট রাখতে পারবেন। এলিমেন্টগুলোর পজিশনিং শুরু হয় 0 থেকে। আমাদের এই অ্যারেতে প্রথম এলিমেন্ট 11 এর পজিশন অ্যারের একদম শুরুতে, অর্থাৎ 0 তে, এবং এর পরের এলিমেন্ট 12 এর পজিশন 1 এ। এই পজিশনকে প্রোগ্রামিং এর ভাষায় বলে অফসেট (Offset), অর্থাৎ 11 এর অফসেট 0 এবং 12 এর অফসেট 1। আমরা যেকোন সময় অ্যারের যেকোন অফসেটে যেকোন এলিমেন্টের মান পরিবর্তন করতে পারি। নিচের কোডটি দেখুন কিভাবে যেকোন অফসেটে কোন এলিমেন্টের মান পরিবর্তন করা যায়
<?php //filename: /home/hasin/www/array2.php $MyArray = array(11,12,13,14,15); for($i=0;$i<5;$i++) $MyArray[$i] = $MyArray[$i]*$MyArray[$i]; print_r($MyArray); ?>
অ্যারের যেকোন অফসেটের এলিমেন্ট এর মান জানা বা পরিবর্তন করার জন্য অ্যারের সাথে থার্ড ব্র্যাকেটের মাঝে সেই অফসেট বলে দিতে হয়। যেমন উপরের উদাহরনে আমরা ০ থেকে ৪ পর্যন্ত অফসেটের এলিমেন্টগুলোর মান তাদের বর্তমান মান দিয়ে গুন করে পরিবর্তন করেছি (লাইন # ৪) ।
পিএইচপিতে অ্যারে নিয়ে কাজ করার সময় আরো একটা জিনিস মনে রাখা দরকার। অ্যারের অফসেটগুলো যদি নাম্বার হয় (যেমন 0,1,2,3,4,……n) তাহলে আমরা সেই অ্যারেকে বলব ইনডেক্সড অ্যারে। আর যদি অফসেট হয় স্ট্রিং (তাও হয় নাকি? হ্যাঁ হয়, নিচের উদাহরনটি দেখুন) তাহলে সেই অ্যারেকে বলব অ্যাসোসিয়েটেড অ্যারে। চলুন অ্যাসোসিয়েটেড অ্যারের একটা উদাহরন দেখা যাক
<?php
//filename: /home/hasin/www/array3.php
$MyArray = array("blue"=>"berry","red"=>"tomato","green"=>"pear","yellow"=>"banana");
print_r($MyArray);
?>
অ্যাসোসিয়েটেড অ্যারের মাঝে লুপ চালানোর সময় for বা while বা do-while ব্যবহার করা যায় না। এক্ষেত্রে foreach ব্যবহার করতে হয়। চলুন একটা উদাহরন দেখি কিভাবে আমরা উপরের অ্যাসোসিয়েটেড অ্যারেতে লুপ চালাতে পারি।
<?php
//filename: /home/hasin/www/array4.php
$MyArray = array("blue"=>"berry","red"=>"tomato","green"=>"pear","yellow"=>"banana");
foreach($MyArray as $key=>$value)
{
echo "{$value} is {$key}
";
}
?>
এই কোডটুকু রান করলে আমরা দেখবে নিচের মত আউটপুট এসেছে
berry is blue tomato is red pear is green banana is yellow
foreach লুপে $key তে অ্যারের এলিমেন্টের অফসেট এবং $value তে এলিমেন্টের মান স্টোর হয়।
এর পরের পোস্টে আমরা দেখব অ্যারে নিয়ে আরো বেশ কিছু বিষয় আলোচনা করব, সেইসাথে দেখব অ্যারে সংক্রান্ত বহুল ব্যবহৃত ফাংশনগুলোর ব্যবহার।
December 20, 2009 - 1:04 am
nice…
December 20, 2009 - 2:34 am
হাসিন ভাই,
অনেক ধন্যবাদ। অপেক্ষা একটু বেশী হয়েছ – ফলটাও মজাদার হয়েছে।
December 20, 2009 - 2:34 pm
হাসিন ভাই,
আউটপুট প্রদর্শনের ক্ষেত্রে
print_rএবংechoএর মধ্যে মৌলিক পার্থক্যটা কি অর্থাৎ কখন কোনটা ব্যবহার করতে হয়।December 20, 2009 - 9:36 pm
echo দিয়ে আসলে যেকোন ভ্যারিয়েবলের মান আউটপুট দেয়া যায়, কিন্তু অ্যারে বা অবজেক্টের মান আউটপুটে দেখতে print_r ব্যবহার করা হয়
January 24, 2010 - 1:54 am
গুরু,
অনেক কিছু শিখতাছি,
শুধু thanks জানালে কম হবে
তার ছে বেশি কিছু