Sự kết hợp giữa mảng số và mảng liên kết trong PHP để làm giỏ hàng cho trang web

0:27 22/04/2024

Mảng số và mảng liên kết là hai cấu trúc dữ liệu cơ bản trong PHP, được sử dụng rộng rãi để lưu trữ và quản lý thông tin.

Mảng số được sử dụng để lưu trữ danh sách các giá trị có cùng kiểu dữ liệu, được truy cập thông qua chỉ mục số. Ưu điểm của mảng số là hiệu quả về bộ nhớ và tốc độ truy cập. Tuy nhiên, mảng số không phù hợp để lưu trữ dữ liệu phức tạp với nhiều thuộc tính liên quan với nhau.

Mảng liên kết là một cấu trúc dữ liệu linh hoạt hơn, cho phép bạn lưu trữ các cặp khóa-giá trị, trong đó khóa có thể là bất kỳ chuỗi nào. Điều này giúp mảng liên kết trở nên lý tưởng để lưu trữ thông tin chi tiết về sản phẩm trong giỏ hàng, chẳng hạn như ID sản phẩm, tên sản phẩm, giá cả, số lượng, …

Dựa vào những tính chất này mà việc kết hợp hai loại mảng này một cách hiệu quả có thể giúp bạn tạo ra hệ thống giỏ hàng linh hoạt và mạnh mẽ cho trang web của mình.

Để tạo hệ thống giỏ hàng hiệu quả, bạn có thể kết hợp hai loại mảng này như sau:

  • Sử dụng mảng số để lưu trữ danh sách các sản phẩm trong giỏ hàng. Mỗi phần tử trong mảng số đại diện cho một sản phẩm được thêm vào giỏ hàng.
  • Sử dụng mảng liên kết để lưu trữ thông tin chi tiết về từng sản phẩm trong giỏ hàng. Mảng liên kết này sẽ có các khóa tương ứng với ID sản phẩm và giá trị tương ứng với thông tin chi tiết của sản phẩm đó, chẳng hạn như tên, giá cả, số lượng, …

Kết hợp giữa mảng số và mảng liên kết trong PHP để làm giỏ hàng đem lại:

  • Việc sử dụng mảng số để lưu trữ danh sách sản phẩm giúp truy cập thông tin nhanh chóng và hiệu quả.
  • Mảng liên kết cho phép bạn lưu trữ nhiều thông tin chi tiết về sản phẩm một cách dễ dàng.
  • Hệ thống này có thể dễ dàng mở rộng để hỗ trợ thêm nhiều sản phẩm và thuộc tính sản phẩm.

Lưu ý:

  • Để đảm bảo tính bảo mật cho giỏ hàng, bạn nên lưu trữ dữ liệu giỏ hàng trên phiên làm việc hoặc cơ sở dữ liệu thay vì lưu trữ trực tiếp trên trình duyệt của người dùng.
  • Bạn nên sử dụng các hàm và lớp PHP được cung cấp để quản lý mảng và dữ liệu giỏ hàng một cách hiệu quả.

Ví dụ: Lưu trữ giỏ hàng trên phiên trình duyệt, và 1 số thao tác trên giỏ hàng

  1. Khai báo: khai báo 1 mảng lưu 3 sản phẩm như sau

$_SESSION[‘cart’]

= array(

    array(

        ‘id’ => 1,

        ‘name’ => ‘Sản phẩm A’,

        ‘price’ => 100,

        ‘quantity’ => 2

    ),

    array(

        ‘id’ => 2,

        ‘name’ => ‘Sản phẩm B’,

        ‘price’ => 200,

        ‘quantity’ => 1

    ),

    array(

        ‘id’ => 3,

        ‘name’ => ‘Sản phẩm C’,

        ‘price’ => 300,

        ‘quantity’ => 3

    )

);

Hoặc có thể khai báo theo cách:

$_SESSION[‘cart’]= [

    [

        ‘id’ => 1,

        ‘name’ => ‘Sản phẩm A’,

        ‘price’ => 100,

        ‘quantity’ => 2

    ],

    [

        ‘id’ => 2,

        ‘name’ => ‘Sản phẩm B’,

        ‘price’ => 200,

        ‘quantity’ => 1

    ],

    [

        ‘id’ => 3,

        ‘name’ => ‘Sản phẩm C’,

        ‘price’ => 300,

        ‘quantity’ => 3

    ]

];

  1. Thêm sản phẩm vào giỏ hàng:

Để thêm sản phẩm vào giỏ hàng, bạn cần tạo một mảng liên kết mới chứa thông tin sản phẩm và thêm nó vào session mảng giỏ hàng.

function addToCart($id, $name, $price, $quantity) {

 

  $newItem = [

    ‘id’ => $id,

    ‘name’ => $name,

    ‘price’ => $price,

    ‘quantity’ => $quantity

  ];

 

  $_SESSION[‘cart’][] = $newItem;

}

  1. Cập nhật sản phẩm trong giỏ hàng:

Bạn có thể cập nhật thông tin sản phẩm trong giỏ hàng bằng cách tìm kiếm sản phẩm theo ID và thay đổi các giá trị. 

ví dụ: cập nhật quantity:

function updateCart($id, $quantity) {

 

  foreach ($_SESSION[‘cart’]as $key => $item) {

    if ($item[‘id’] == $id) {

      $_SESSION[‘cart’][$key][‘quantity’] = $quantity;

      break;

    }

  }

}

  1. Xóa sản phẩm khỏi giỏ hàng:

Để xóa sản phẩm khỏi giỏ hàng, bạn cần tìm kiếm sản phẩm theo ID và xóa phần tử tương ứng khỏi mảng.

function removeFromCart($id) {

 

  foreach ($_SESSION[‘cart’] as $key => $item) {

    if ($item[‘id’] == $id) {

      array_splice($_SESSION[‘cart’],$key,1);

      break;

    }

  }

}

  1. Tính toán tổng giá trị giỏ hàng:

Để tính toán tổng giá trị giỏ hàng, bạn cần lặp qua từng sản phẩm trong giỏ hàng và nhân giá sản phẩm với số lượng. Sau đó, cộng tất cả các giá trị này lại với nhau.

function calculateTotal() {

 

  $total = 0;

 

  foreach ($_SESSION[‘cart’] as $item) {

    $total += $item[“price”] * $item[“quantity”];

  }

 

  return $total;

}

Kết luận:

Sự kết hợp giữa mảng số và mảng liên kết trong PHP là một giải pháp hiệu quả và linh hoạt để tạo hệ thống giỏ hàng cho trang web. Bằng cách sử dụng hai loại mảng này một cách hợp lý, bạn có thể xây dựng hệ thống giỏ hàng có thể đáp ứng nhu cầu của trang web của bạn.

Giảng viên Nguyễn Thị Ly
Bộ môn Công nghệ thông tin
FPT Mạng cá cược bóng đá TP HCM

Cùng chuyên mục

Đăng Kí học Fpoly 2024