পর্ব ১ঃ কালেকশন মেথড

কালেকশন (collection) হচ্ছে ডেটা নিয়ে কাজ করার জন্য খুবই দরকারি কিছু মেথড। কালেকশন মেথড দিয়ে আপনি খুব সহজেই যেকোন অ্যারে থেকে ফিল্টার থেকে শুরু করে কাস্টমাইজ ম্যাপিং পর্যন্ত সবই করতে পারবেন।
Scope of Collection. Source: London Library

Collection:

কালেকশন (collection) হচ্ছে অ্যারে ডেটা প্রসেসিং এর জন্য একটি শক্তিশালী মাধ্যম। ডেটা ফিল্টারিং, স্লাইসিং, ম্যাপিং কি নেই এতে? চলুন তাহলে দেখে নেয়া যাক, লারাভেল কালেকশন্ মেথডগুলি দিয়ে আসলে আমরা কি কি করতে পারি।

ধরুন আপনার একটি লাইব্রেরীতে কিছু সংখ্যক বই রাখা আছে। বইগুলি এমনভাবে সাজানো,

// list of php books
$books = [
[
'title' => 'The Joy of PHP Programming',
'author' => 'Alan Forbes',
'edition' => 5,
'price' => 2111 // price in BDT
],
[
'title' => 'PHP & MySQL Novice to Ninja',
'author' => 'Tom Butler & Kevin Yank',
'edition' => 6,
'price' => 1726 // price in BDT
],
[
'title' => 'Head First PHP & MySQL',
'author' => 'Lynn Beighley & Michael Morrison',
'edition' => 1,
'price' => 4627 // price in BDT
],
[
'title' => 'PHP: A Beginner’s Guide',
'author' => 'Vikram Vaswani',
'edition' => 1,
'price' => 3500 // price in BDT
]
]

$book অ্যারে কে কিভাবে কালেকশন করতে হয় আমরা আগেই শিখেছি। আরও একবার দেখে নেই।

$books = collect($books);

filter()

এখন যদি শুধুমাত্র প্রথম সংস্করণের বই এর তালিকা চাওয়া হয় তাহলে কিভাবে করবেন?filter() মেথড কাজটি বেশ সহজ করে দিয়েছে 👇

$filter = $books->filter(function($value, $key) {
return $value['edition'] == 1;
});
$filter->all();
// output
$output =
[
[
'title' => 'Head First PHP & MySQL',
'author' => 'Lynn Beighley & Michael Morrison',
'edition' => 1,
'price' => 4627 // price in BDT
],
[
'title' => 'PHP: A Beginner’s Guide',
'author' => 'Vikram Vaswani',
'edition' => 1,
'price' => 3500 // price in BDT
]
]

contains()

কোন একটি ভ্যালু কালেকশনে আছে কি না তা এই contains() মেথড দিয়ে পাওয়া যায়। এটি বুলিয়ান রেজাল্ট রিটার্ন করে। যেমন, 👇

$books->contains('title', 'Head First PHP & MySQL'); // TRUE
$books->contains('title', 'Boss of PHP'); // FALSE

only()

কোন কালেকশন থেকে শুধুমাত্র স্পেসিফিক ভ্যালুগুলি দেখতে চাইলে only()

$filtered = $books->only(['title', 'price']);
$filtered->all();
// output
[
[
'title' => 'The Joy of PHP Programming',
'author' => 'Alan Forbes'
],
[
'title' => 'PHP & MySQL Novice to Ninja',
'author' => 'Tom Butler & Kevin Yank'
],
[
'title' => 'Head First PHP & MySQL',
'author' => 'Lynn Beighley & Michael Morrison'
],
[
'title' => 'PHP: A Beginner’s Guide',
'author' => 'Vikram Vaswani'
]
]

আবার কালেকশন থেকে কোন কী বাদ দিতে চাইলে except() মেথড ব্যবহার করতে পারেন। except() মেথডের মতই forget() মেথড কাজ করে। তবে এক্ষেত্রে কালেকশন মডিফাই হয়ে যায় অর্থাৎ পূর্বের কালেকশনটি আর ফেরত পাওয়া যাবে না।

implode()

কালেকশনের সব থেকে মজার মেথড এটি। পিএইচপি implode() এর মতই লারাভেল implode() মেথড কাজ করে। যেমন, লাইব্রেরিতে রাখা বইগুলির নাম কমা আকারে দেখাতে হবে সেক্ষেত্রে,

$books->implode('title', ', ');
// output
/*
The Joy of PHP Programming, PHP & MySQL Novice to Ninja,
Head First PHP & MySQL, PHP: A Beginner’s Guide
*/

তবে যদি বইয়ের নামের তালিকার অ্যারে দরকার হয় তাহলে pluck() মেথড ব্যবহার করতে হবে।

$books->pluck('title');
$books->all();
// output
[
'The Joy of PHP Programming',
'PHP & MySQL Novice to Ninja',
'Head First PHP & MySQL',
'PHP: A Beginner’s Guide'
];

চলবে.....................।

আরও বিস্তারিত দেখতে পারেন এখানে