Practical use of PHP array_search function

practical use of array_search function

PHP-তে array_search() ফাংশনটি আপনি বিভিন্ন পরিস্থিতিতে ব্যবহার করতে পারেন যেখানে আপনাকে একটি অ্যারের মধ্যে একটি নির্দিষ্ট মান অনুসন্ধান করতে হবে। এখানে কিছু সাধারণ ব্যবহারের ক্ষেত্রে রয়েছে:

১. Checking for the Existence of an Element:

আপনি array_search() ফাঙ্কশনটি ব্যবহার করে নির্ধারণ করতে পারেন যে একটি নির্দিষ্ট মান পরবর্তী অপারেশন করার আগে একটি অ্যারেতে বিদ্যমান কিনা।

উদাহরণ ১:

আসুন একটি বাস্তব উদাহরণ বিবেচনা করি যেখানে আপনাকে PHP এর array_search() ফাংশন ব্যবহার করে একটি ইনভেন্টরি ম্যানেজমেন্ট সিস্টেমে একটি নির্দিষ্ট প্রোডাক্ট আছে কি না? তা পরীক্ষা করতে হবে।

<?php
// Sample inventory array
$inventory = array(
    array("product_id" => 101, "product_name" => "Widget A", "quantity" => 50, "price" => 19.99),
    array("product_id" => 102, "product_name" => "Widget B", "quantity" => 30, "price" => 29.99),
    array("product_id" => 103, "product_name" => "Widget C", "quantity" => 40, "price" => 24.99),
);

// Function to check if a product exists in the inventory using array_search()
function isProductInInventory($productID, $inventory) {
    $key = array_search($productID, array_column($inventory, 'product_id'));

    if ($key !== false) {
        return $inventory[$key];
    } else {
        return null; // Product not found
    }
}

// Example usage
$productIDToFind = 101;
$result = isProductInInventory($productIDToFind, $inventory);

if ($result) {
    echo "Product found! Name: " . $result['product_name'] . ", Quantity: " . $result['quantity'] . ", Price: $" . $result['price'];
} else {
    echo "Product not found in the inventory.";
}
?>

এই উদাহরণে, আমাদের কাছে একটি ইনভেন্টরি অ্যারে রয়েছে যা বিভিন্ন attribute সহ একটি প্রোডাক্টকে উপস্থাপন করে। প্রদত্ত product ID সহ একটি নির্দিষ্ট প্রোডাক্ট সহ ইনভেন্টরিতে বিদ্যমান কিনা তা আমরা পরীক্ষা করতে চাই। isProductInInventory ফাংশন array_search() এবং array_column() ব্যবহার করে প্রোডাক্টের আইডি দ্বারা প্রোডাক্ট অনুসন্ধান করতে। যদি প্রোডাক্ট টি পাওয়া যায় তবে এটি উক্ত প্রোডাক্টের বিস্তারিত বিবরণ রিটার্ন করে এবং যদি না থাকে তবে এটি null রিটার্ন করে। এইভাবে, আপনি পরবর্তী অপারেশন্স সম্পাদন করার আগে আপনার ইনভেন্টরিতে একটি প্রোডাক্টের অস্তিত্ব নির্ধারণ করতে পারেন, যেমন এর পরিমাণ আপডেট করা বা এর বিস্তারিত বিবরণ ডিসপ্লে করা।

যাইহোক উপরোক্ত Product Search উদাহরণটি আপনি array_search এবং array_keys ফাঙ্কশন ব্যবহার না করেও নিম্নোক্ত উপায়ে শুধু foreach ফাঙ্কশন ব্যবহার করেও search করতে পারতেন।

<?php
// Sample inventory array
$inventory = array(
    array("product_id" => 101, "product_name" => "Widget A", "quantity" => 50, "price" => 19.99),
    array("product_id" => 102, "product_name" => "Widget B", "quantity" => 30, "price" => 29.99),
    array("product_id" => 103, "product_name" => "Widget C", "quantity" => 40, "price" => 24.99),
);

// Function to check if a product exists in the inventory
function isProductInInventory($productID, $inventory) {
    foreach ($inventory as $product) {
        if ($product['product_id'] == $productID) {
            return $product;
        }
    }

    return null; // Product not found
}

// Example usage
$productIDToFind = 101;
$result = isProductInInventory($productIDToFind, $inventory);

if ($result) {
    echo "Product found! Name: " . $result['product_name'] . ", Quantity: " . $result['quantity'] . ", Price: $" . $result['price'];
} else {
    echo "Product not found in the inventory.";
}
?>

২. Finding Duplicates:

আপনি যদি একটি অ্যারেতে ডুপ্লিকেট value গুলি খুঁজে পেতে চান তবে আপনি উক্ত duplicate valueগুলো গুলো search করতে এবং পরিচালনা করতে একটি লুপের সংমিশ্রণে array_search() ব্যবহার করতে পারেন।

উদাহরণ ১:

<?php
// Sample array of customer email addresses
$customerEmails = array(
    "customer1@example.com",
    "customer2@example.com",
    "customer3@example.com",
    "customer2@example.com",  // Duplicate email address
    "customer4@example.com",
    "customer5@example.com",
    "customer1@example.com",  // Duplicate email address
);

// Function to find and handle duplicate email addresses
function findAndHandleDuplicates($emailArray) {
    $duplicateEmails = array();
    $uniqueEmails = array();

    foreach ($emailArray as $email) {
        if (array_search($email, $uniqueEmails) === false) {
            // This email is not in the list of unique emails, so add it.
            $uniqueEmails[] = $email;
        } else {
            // This email is a duplicate.
            $duplicateEmails[] = $email;
        }
    }

    return $duplicateEmails;
}

// Find and handle duplicates
$duplicateEmails = findAndHandleDuplicates($customerEmails);

if (!empty($duplicateEmails)) {
    echo "Duplicate email addresses found and handled:<br>";
    foreach ($duplicateEmails as $duplicateEmail) {
        echo "Email: " . $duplicateEmail . " - Duplicate!<br>";
        // You can add your handling logic here, such as logging, alerting, or removing duplicates.
    }
} else {
    echo "No duplicate email addresses found.";
}
?>

এই উদাহরণে, আমাদের কাছে কাস্টমার ইমেল এড্রেস গুলির একটি অ্যারে রয়েছে। findAndHandleDuplicates ফাংশনটি ডুপ্লিকেট ইমেল এড্রেস সনাক্ত করতে এবং পরিচালনা করতে একটি লুপের সংমিশ্রণে array_search() ব্যবহার করে। এটি দুটি অ্যারে তৈরি করে: একটি অনন্য ইমেল এড্রেস এর জন্য এবং একটি duplicate গুলির জন্য। আপনি আপনার প্রয়োজন অনুসারে handling logic কাস্টমাইজ করতে পারেন, যেমন logging, alerting বা ডুপ্লিকেট ইমেল ঠিকানা অপসারণ। এই উদাহরণটি দেখায় যে আপনি কিভাবে array_search() ব্যবহার করতে পারেন একটি বাস্তব-বিশ্বের দৃশ্যে duplicate গুলি খুঁজে পেতে এবং পরিচালনা করতে পারেন।

৩. Conditionally Manipulating Array Elements:

আপনি অ্যারেতে একটি value পাওয়া যায় কিনা তার উপর ভিত্তি করে নির্দিষ্ট একশন্স বা মোডিফিকেশন্স গুলি সম্পাদন করতে conditional statements এর সাথে array_search() ব্যবহার করতে পারেন।

উদাহরণ ১:

আসুন একটি বাস্তব উদাহরণ বিবেচনা করি যেখানে আপনার কাছে অর্ডারগুলির একটি লিস্ট রয়েছে এবং আপনি আপনি বিভিন্ন কন্ডিশন গুলির একটি সেটের ভিত্তিতে অর্ডারে নির্দিষ্ট প্রোডাক্ট গুলিতে বিভিন্ন ডিসকাউন্ট প্রয়োগ করতে চান৷ আপনি এটি অর্জন করতে conditional statement গুলির সাথে একত্রে array_search() ব্যবহার করতে পারেন।

<?php
// Sample array of orders
$orders = array(
    array("product" => "Widget A", "quantity" => 3, "price" => 20.00),
    array("product" => "Widget B", "quantity" => 2, "price" => 15.00),
    array("product" => "Widget C", "quantity" => 4, "price" => 25.00),
);

// Function to apply discounts based on product conditions
function applyProductDiscounts($orders) {
    $discountedOrders = array();
    
    foreach ($orders as $order) {
        $product = $order['product'];
        $discount = 0.0;

        // Use array_search() in conjunction with conditional statements to apply discounts
        if (array_search($product, ["Widget A", "Widget B"]) !== false) {
            $discount = 0.10; // 10% discount for Widget A and Widget B
        } elseif (array_search($product, ["Widget C"]) !== false) {
            $discount = 0.15; // 15% discount for Widget C
        }

        $discountedPrice = $order['price'] * (1 - $discount);
        
        $discountedOrders[] = array(
            "product" => $product,
            "quantity" => $order['quantity'],
            "discounted_price" => $discountedPrice,
        );
    }
    
    return $discountedOrders;
}

// Example usage
$discountedOrders = applyProductDiscounts($orders);

foreach ($discountedOrders as $order) {
    echo "Product: " . $order['product'] . "<br>";
    echo "Quantity: " . $order['quantity'] . "<br>";
    echo "Discounted Price: $" . number_format($order['discounted_price'], 2) . "<br><br>";
}
?>

এই উদাহরণে, আমাদের কাছে প্রোডাক্টের ডিটেলস সহ অর্ডারের একটি অ্যারে রয়েছে। applyProductDiscounts ফাংশন পণ্য কন্ডিশন এর উপর ভিত্তি করে বিভিন্ন ডিসকাউন্ট প্রয়োগ করতে conditional statements এর সাথে array_search() ব্যবহার করে। তারপরে এটি ডিসকাউন্ট কৃত প্রাইস ক্যালকুলেট করে এবং discounted order গুলোর একটি array রিটার্ন করে।

এই সিনারিওটি দেখায় যে আপনি কীভাবে শর্তসাপেক্ষে অ্যারের এলিমেন্ট গুলিকে ম্যানিপুলেট করতে পারেন, যেমন একটি real-world কনটেক্সটে নির্দিষ্ট প্রোডাক্টের অবস্থার উপর ভিত্তি করে ছাড় প্রয়োগ করা।

৪. Retrieving the Key/Index of an Element:

যখন আপনি একটি নির্দিষ্ট মানের সাথে যুক্ত key বা Index খুঁজে বের করতে চান, আপনি এটি সনাক্ত করতে array_search() ব্যবহার করতে পারেন।

উদাহরণ ১:

একটি e-commerce website এ একটি shopping cart সম্পর্কিত একটি বাস্তব উদাহরণ বিবেচনা করা যাক৷ ধরুন , আপনার কাছে shopping cart এ আইটেমগুলির রিপ্রেজেন্ট করা একটি অ্যারে রয়েছে এবং আপনাকে cart এ একটি নির্দিষ্ট প্রোডাক্টের সাথে সম্পর্কিত key বা index টি খুঁজে বের করতে হবে। এটি বিভিন্ন একশনের জন্য প্রয়োজন হতে পারে, যেমন একটি নির্দিষ্ট প্রোডাক্টের পরিমাণ আপডেট করা বা কার্ট থেকে একটি আইটেম রিমোভ করা ইত্যাদি।

<?php

$maincart = [
    ["product_id" => "p123", "name" => "Smartphone", "price" => 499.99, "quantity" => 2],
    ["product_id" => "p456", "name" => "Laptop", "price" => 999.99, "quantity" => 1],
    ["product_id" => "p789", "name" => "Headphones", "price" => 49.99, "quantity" => 3],
];

// Shopping cart array with product IDs as keys and product details as values
$cart = array_column($maincart, null, 'product_id');

//print_r($cart);

// Product ID to find
$productToFind = "p456";

// Check if the product is in the cart and retrieve its index
$index = array_search($productToFind, array_keys($cart));

if ($index !== false) {
    // Product found, perform actions like updating quantity or removing it
    $productKey = array_keys($cart)[$index];
    $product = $cart[$productKey];

    // Example: Update quantity
    $newQuantity = 2;
    $cart[$productKey]["quantity"] = $newQuantity;

    // Example: Remove the product
    unset($cart[$productKey]);

    echo "Product '$productToFind' found in the cart and updated/removed.";
} else {
    echo "Product '$productToFind' not found in the cart.";
}

// Print the updated cart
print_r($cart);

এই উদাহরণে:

  • আমাদের কাছে একটি shopping cart রয়েছে যা একটি associative array হিসাবে উপস্থাপিত হয় যেখানে product ID গুলি হল key এবং প্রতিটি প্রোডাক্ট হল যেমন name, price, এবং quantity মতো বিবরণ সহ একটি অ্যারে৷
  • আমরা যে প্রোডাক্ট টি খুঁজে পেতে চাই তার product ID দ্বারা নির্দিষ্ট করি, যা এই ক্ষেত্রে “p456″।
  • আমরা যে প্রোডাক্ট টি খুঁজতে চাই তার সাথে associated key (product ID) সনাক্ত করতে আমরা array_search() ব্যবহার করি।
  • যদি প্রোডাক্টটি পাওয়া যায় (অর্থাৎ, $index false না হয়), আমরা তার key/index উপর ভিত্তি করে পরিমাণ আপডেট করা বা কার্ট থেকে প্রোডাক্ট টি রিমুভ মতো কাজগুলি সম্পাদন করতে পারি।

এই উদাহরণটি দেখায় কিভাবে আপনি array_search() ব্যবহার করে একটি শপিং কার্ট অ্যারের মধ্যে একটি নির্দিষ্ট মান (এই ক্ষেত্রে, একটি প্রোডাক্ট আইডি) এর সাথে সম্পর্কিত key/index সনাক্ত করতে পারেন, যা আপনাকে প্রয়োজন অনুযায়ী কার্টের কন্টেন্টস ম্যানিপুলেট করতে দেয়।

৫. Validating User Input:

ইউজারের ইনপুট নিয়ে কাজ করার সময়, আপনি array_search() ফাঙ্কশনটি ব্যবহার করতে পারেন যে, কোনো ইউজারের ইনপুট কোনো অ্যারের কোনো valid options বা পছন্দের সাথে মেলে কিনা।

উদাহরণ ১:

চলুন একটি web form কি কনটেক্সটে ইউজারের ইনপুট যাচাই করতে array_search() ব্যবহার করার একটি বাস্তব উদাহরণ বিবেচনা করা যাক। ধরুন আপনার কাছে একটি ওয়েব ফর্ম রয়েছে যেখানে ইউজাররা তাদের পছন্দের payment method নির্বাচন করতে পারে এবং আপনি নিশ্চিত করতে চান যে ইউজারের দেওয়া ইনপুট valid payment option গুলির একটির সাথে মেলে।

<?php 
// Valid payment options as an array
$validPaymentOptions = array("credit_card", "paypal", "bank_transfer", "cash");

// Simulated user input (from a form submission)
$userInput = 'paypal'; // $_POST['payment_method']; Assume the user selected a payment method

// Validate the user's payment method choice
if (array_search($userInput, $validPaymentOptions) !== false) {
    // User's input is valid
    echo "Thank you for selecting $userInput as your payment method!";
    
    // Process the payment or save the choice to a database
    // (In a real-world scenario, you would implement the payment processing logic here)
} else {
    // User's input is not valid
    echo "Invalid payment method. Please choose a valid option from the list.";
}

// Here, you can also provide the user with a list of valid options for reference
echo "Valid payment options: " . implode(", ", $validPaymentOptions);

এই উদাহরণে:

  • আমরা valid payment method গুলো (যেমন, credit card, PayPal, bank transfer, cash) সমন্বিত $validPaymentOptions নামক একটি অ্যারে ডিফাইন করি।
  • আমরা $_POST[‘payment_method’] অ্যাক্সেস করে ইউজারের ইনপুট সিমুলেট করি, ধরে নিই এটি একটি ওয়েব ফর্ম থেকে ইউজারের চয়েস।
  • ইউজারের ইনপুট ($userInput) valid payment option গুলির একটির সাথে মেলে কিনা তা পরীক্ষা করতে আমরা array_search() ব্যবহার করি। যদি ইনপুটটি অ্যারেতে পাওয়া যায় তবে এটি ভ্যালিড বলে বিবেচিত হয়।
  • ইউজারের ইনপুট ভ্যালিড হলে, আমরা একটি success message প্রদান করি এবং পেমেন্ট প্রসেস করতে বা একটি ডাটাবেসে পছন্দের পেমেন্ট টি সংরক্ষণ করতে এগিয়ে যেতে পারি (একটি বাস্তব দৃশ্যের জন্য, পেমেন্ট প্রসেসিং লজিক এখানে প্রয়োগ করা হবে)।
  • যদি ইউজারের ইনপুট ভ্যালিড না হয় (যেমন, array_search() false রিটার্ন দেয়), আমরা একটি error message প্রদর্শন করি এবং ইউজারের একটি ভ্যালিড অপশন্স বেছে নেওয়ার পরামর্শ দিই।
  • ঐচ্ছিকভাবে, আমরা রেফারেন্সের জন্য valid payment option গুলির লিস্ট ও প্রদর্শন করি।

এই উদাহরণটি দেখায় কিভাবে array_search() ব্যবহার করে ইউজারের ইনপুট যাচাই করতে ব্যবহার করা যেতে পারে যে এটি একটি অ্যারের কোনো ভ্যালিড অপশন বা পছন্দের সাথে মেলে কিনা, যা ওয়েব অ্যাপ্লিকেশনগুলিতে ফর্ম সাবমিট এবং ইউজারের পছন্দগুলি পরিচালনা করার সময় একটি সাধারণ কাজ।

উদাহরণ ২:

আসুন ইউজারের ইনপুট যাচাই করতে array_search() ব্যবহার করার আরো একটি বিস্তৃত এবং বিশদ বাস্তব-জগতের একটি উদাহরণ বিবেচনা করা যাক। কল্পনা করুন আপনি একটি অনলাইন প্ল্যাটফর্মের জন্য একটি ইউজারের রেজিস্ট্রেশন ফর্ম তৈরি করছেন যেখানে ইউজাররা একটি পূর্বনির্ধারিত লিস্ট থেকে তাদের ইন্টারেস্ট গুলি নির্বাচন করতে পারে৷ আপনি নিশ্চিত করতে চান যে ইউজারদের দ্বারা নির্বাচিত ইন্টারেস্ট গুলি আপনার সিস্টেমে বিদ্যমান অপশন গুলির সাথে মেলে৷

<?php 
// Predefined list of available interests
$validInterests = array(
    "travel",
    "music",
    "sports",
    "cooking",
    "reading",
    "programming"
);

// Simulated user input (from a form submission)
$userInterests = ['travel','cooking','programming'];//$_POST['interests']; // Assume the user selected multiple interests

// Initialize an array to store the user's valid interests
$validUserInterests = array();

// Validate the user's selected interests
foreach ($userInterests as $interest) {
    if (array_search($interest, $validInterests) !== false) {
        // User's interest is valid
        $validUserInterests[] = $interest;
    }
}

if (!empty($validUserInterests)) {
    // At least one of the user's selected interests is valid
    echo "Thank you for selecting the following valid interests: " . implode(", ", $validUserInterests)."\n";
    
    // Process the user's registration with their selected interests
    // (In a real-world scenario, you would save this data to a database)
} else {
    // None of the user's selected interests are valid
    echo "None of the selected interests are valid. Please choose from the provided list.";
}

// Optionally, you can provide the user with a list of valid options for reference
echo "Valid interests: " . implode(", ", $validInterests);

এই উদাহরণে:

  • আমরা $validInterests নামক একটি অ্যারেকে ডিফাইন করি যাতে predefined valid interests লিস্ট থাকে, যেমন “travel,” “music,” “sports” ইত্যাদি।
  • আমরা $_POST[‘interests’] অ্যাক্সেস করে ইউজারের ইনপুট সিমুলেট করি, ধরে নিই যে ইউজার একটি ওয়েব ফর্ম থেকে একাধিক ইন্টারেস্ট সিলেক্ট করেছেন। এই ক্ষেত্রে ইনপুটটি সাধারণত একটি অ্যারে হয়.
  • আমরা $validUserInterests নামক একটি empty array দিয়ে শুরু করি ইউজারের সিলেক্টেড এবং ভ্যালিড ইন্টারেস্ট গুলি সংরক্ষণ করতে।
  • আমরা ইউজারের সিলেক্টেড ইন্টারেস্ট গুলোর মধ্যে ইটারেট করার জন্য একটি foreach লুপ ব্যবহার করি এবং প্রতিটি ইন্টারেস্ট ভ্যালিড ইন্টারেস্ট গুলির একটির সাথে মেলে কিনা তা পরীক্ষা করতে array_search() ব্যবহার করি। যদি একটি মিল পাওয়া যায়, উক্ত ইন্টারেস্টটি বৈধ বলে বিবেচিত হয় এবং $validUserInterests অ্যারেতে যোগ করা হয়।
  • ইউজারের যদি অন্তত একটি ভ্যালিড ইন্টারেস্ট সিলেক্ট করে থাকেন (অর্থাৎ, $validUserInterests এরে টি খালি নয়), তাহলে আমরা একটি সাকসেস মেসেজ রিটার্ন করি এবং ইউজারের রেজিস্ট্রেশন তাদের সিলেক্টেড ইন্টারেস্ট এর সাথে প্রসেস করতে এগিয়ে যেতে পারি (একটি বাস্তব-বিশ্বের পরিস্থিতিতে, এই ডেটা সংরক্ষণ করা হবে) একটি ডাটাবেসে)।
  • যদি সিলেক্টেড ইণ্টারেস্টের কোনোটিই ভ্যালিড না হয়, আমরা একটি error message প্রদর্শন করি এবং ইউজারকে প্রদত্ত লিস্ট থেকে বেছে নেওয়ার পরামর্শ দিই।
  • এছাড়া , আমরা রেফারেন্সের জন্য valid interest option গুলির লিস্ট ও প্রদর্শন করি।

এই উদাহরণটি দেখায় যে কিভাবে array_search() একটি রেজিস্ট্রেশন ফর্মে ব্যবহার করা যেতে পারে ইউজারের ইনপুট যাচাই করার জন্য সিলেক্টেড ইন্টারেস্ট গুলি পূর্বনির্ধারিত লিস্ট থেকে কোনো ভ্যালিড অপশনের সাথে মেলে কিনা। ওয়েবসাইট এবং অ্যাপে user profile forms তৈরি করার সময় এটি একটি সাধারণ দৃশ্য।

৬. Implementing Custom Search Logic:

আপনার নির্দিষ্ট use case নির্ভর করে, আপনি আপনার নিজস্ব শর্ত এবং মানদণ্ড প্রদান করে search logic কাস্টমাইজ করতে পারেন।

আসুন একটি বাস্তব-বিশ্বের উদাহরণ দেখি, যেখানে আমরা array_search() ব্যবহার করে custom search logic প্রয়োগ করি। কল্পনা করুন আপনি একটি content management system (CMS) তৈরি করছেন যেখানে ইউজাররা আর্টিকেল গুলি অনুসন্ধান করতে পারে। আপনি একটি ফ্লেক্সিবল অনুসন্ধান বৈশিষ্ট্য প্রদান করতে চান যা ইউজারদের title, author, publication date এবং keyword গুলোর মতো বিভিন্ন মানদণ্ড অনুসারে আর্টিকেল গুলি অনুসন্ধান করতে দেয়৷

<?php 
// An array representing a collection of articles with unique IDs
$articles = array(
    "article1" => array(
        "title" => "PHP Basics",
        "author" => "John Doe",
        "date" => "2023-01-15",
        "keywords" => array("PHP", "programming", "beginner"),
    ),
    "article2" => array(
        "title" => "Web Development with JavaScript",
        "author" => "Jane Smith",
        "date" => "2023-02-20",
        "keywords" => array("JavaScript", "web", "development"),
    ),
    "article3" => array(
        "title" => "Introduction to Machine Learning",
        "author" => "Bob Johnson",
        "date" => "2023-03-10",
        "keywords" => array("machine learning", "AI", "data science"),
    )
);

// Function to perform a custom search based on user criteria using array_search()
function customArticleSearch($articles, $searchCriteria) {
    $results = array();

    foreach ($searchCriteria as $key => $value) {
        foreach ($articles as $articleID => $article) {
            if (array_search($value, $article) !== false) {
                $results[$articleID] = $article;
            }
        }
    }

    return $results;
}

// User's search criteria
$searchCriteria = array(
    'PHP Basics', 'John Doe', '2023-02-20'
);

// Perform the custom search
$searchResults = customArticleSearch($articles, $searchCriteria);

// Display the search results
if (!empty($searchResults)) {
    echo "Search Results:<br>";
    foreach ($searchResults as $result) {
        echo "Title: " . $result['title'] . "<br>";
        echo "Author: " . $result['author'] . "<br>";
        echo "Date: " . $result['date'] . "<br>";
        echo "Keywords: " . implode(', ', $result['keywords']) . "<br><br>";
    }
} else {
    echo "No matching articles found.";
}

এই উদাহরণে:

  • আমাদের আর্টিকেল গুলোর একটি অ্যারে রয়েছে, যেখানে প্রতিটি আর্টিকেলের like title, author, date এবং keywords এর মতো বৈশিষ্ট্য সহ একটি associative array হিসাবে রিপ্রেজেন্ট করা হয়।
  • আমরা একটি customArticleSearch() ফাংশন ডিফাইন করি যা প্যারামিটার হিসাবে আর্টিকেল এবং ইউজারের -সংজ্ঞায়িত অনুসন্ধানের মানদণ্ডের অ্যারে নেয়। এই ফাংশন প্রদত্ত মানদণ্ডের উপর ভিত্তি করে কাস্টম সার্চ লজিক প্রয়োগ করে।
  • আর্টিকেল গুলি ইউজারের মানদণ্ড যেমন title, author, date বা keywords গুলোর সাথে মেলে কিনা তা custom search logic পরীক্ষা করে। title এবং author এর মিলের জন্য লজিকটি case-insensitive. এটি keywords গুলির একটি অংশকেও পরীক্ষা করে, নিশ্চিত করে যে কোনও কীওয়ার্ডের সাথে মিলের ফলে একটি মিল রয়েছে৷
  • আমরা $searchCriteria অ্যারেতে ইউজারের অনুসন্ধানের মানদণ্ড সংজ্ঞায়িত করি। এই উদাহরণে, ব্যবহারকারী “PHP Basics” title এবং “PHP” এবং “programming” কীওয়ার্ড সহ আর্টিকেল গুলি অনুসন্ধান করছেন।
  • আমরা কাস্টম সার্চ করার জন্য articles এবং অনুসন্ধানের মানদণ্ড সহ customArticleSearch() function কে কল করি।
  • title, author, date, এবং matching articles এর কীওয়ার্ড সহ অনুসন্ধান ফলাফল প্রদর্শিত হয়।

এই উদাহরণটি দেখায় কিভাবে array_search() ব্যবহার করে custom search logic প্রয়োগ করতে হয় যাতে ইউজাররা বিভিন্ন মানদণ্ডের উপর ভিত্তি করে আর্টিকেল গুলি অনুসন্ধান করতে পারেন। এটিকে আরও জটিল সার্চের পরিস্থিতির সাথে সামঞ্জস্য করার জন্য প্রসারিত করা যেতে পারে, এটি content management systems, search engines এবং অন্যান্য অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত করে তোলে যার জন্য customizable search ফাঙ্কশনালিটি প্রয়োজন।

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