hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Lập trình PHP
  • Lập trình PHP cơ bản
Mảng (Array) trong PHP

Mảng (Array) trong PHP

  • 01-03-2023
  • Toanngo92
  • 1 Comment

Giả sử chúng ta cần làm phần mềm đội bóng, số áo tất cả 11 cầu thủ phải được lưu và in. Nhiệm vụ này được thực hiện dễ dàng bằng cách sử dụng 11 biến số riêng biệt. Tuy nhiên, nếu con số tăng từ 11 lên một 10000, người dùng hoặc nhà phát triển sẽ khó xây dựng nhiều biến riêng biệt như vậy. Vì vậy, người ta sử dụng khái niệm mảng giúp lưu trữ mọi phần tử trong một biến duy nhất.

Mảng là một kiểu cấu trúc dữ liệu đặc biệt có thể lưu trữ một hoặc nhiều kiểu giá trị tương tự nhau. Mảng giúp lưu trữ danh sách các phần tử có kiểu tương tự có thể được truy cập thông qua chỉ mục hoặc khóa của chúng, trong một biến duy nhất. Điều này giúp giảm thiểu khó khăn trong việc tạo một biến riêng biệt cho từng dữ liệu.

Trong PHP, chúng ta có thể sử dụng hàm array() hoặc ký tự [ ] để khai báo một mảng.

Một mảng có thể lưu trữ nhiều giá trị có cùng tên và các giá trị có thể được truy cập bằng cách tham chiếu một số chỉ mục.

Trong PHP hỗ trợ 3 loại mảng như sau:

  1. Indexed arrays/Numberical Array – Mảng số: có chỉ mục số. Các giá trị được lưu trữ và truy cập một cách tuyến tính.
  2. Associative arrays – Mảng liên kết: Đây là một mảng có các chuỗi làm chỉ mục. Thay vì thứ tự chỉ mục tuyến tính nghiêm ngặt, mảng này lưu trữ các giá trị phần tử liên kết với một giá trị khóa là chuỗi cụ thể.
  3. Multidimensional arrays – Mảng đa chiều: Mảng chứa một hoặc nhiều mảng với giá trị được truy cập thông qua nhiều chỉ mục

Mục lục

  • Indexed arrays/Numberical Array – Mảng số
  • Associative Array/ Mảng kết hợp
  • Multi-dimensional Arrays/ Mảng đa chiều
  • Một số hàm sắp xếp mảng
    • Sắp xếp mảng theo thứ tự tăng dần – sort()
    • Sắp xếp mảng theo thứ tự giảm dần – rsort()
    • Sắp Xếp Mảng theo thứ tự tăng dần, theo giá trị – asort()
    • Sắp Xếp Mảng theo thứ tự giảm dần, theo giá trị – arsort()
    • Sắp Xếp Mảng theo thứ tự tăng dần, theo Khóa – ksort()
    • Sắp Xếp Mảng theo thứ tự giảm dần, theo Khóa – krsort()

Indexed arrays/Numberical Array – Mảng số

Các mảng này có thể chứa số, chuỗi hoặc bất kỳ đối tượng nào khác nhưng chỉ mục của chúng được biểu thị bằng số. Index bắt đầu của mảng được đặt thành 0 theo mặc định, và tăng dần 1 đơn vị cho mỗi index tiếp theo.

Ví dụ:

<?php
$fruits = ["apple", "banana", "mango"];
echo $fruits[0]; // Outputs 'apple'

$fruits = array('apple', 'banana', 'orange'); 
 
foreach($fruits as $fruit) {
    echo 'I eat '.$fruit.' <br/>'; 
}

Associative Array/ Mảng kết hợp

Về chức năng, mảng kết hợp rất giống với mảng số, nhưng chúng khác nhau về khái niệm index (chỉ mục). Người dùng có thể tạo mối liên kết chặt chẽ giữa khóa và giá trị bằng cách sử dụng mảng kết hợp với chuỗi làm chỉ mục.

Ví dụ:

<?php
// A sample associative array 
$myArray = array('join'=> 20 ,'bean'=> 30);
// another way
// $myArray = ['join'=> 20 ,'bean'=> 30];
echo $myArray['join']."<br/>";
echo $myArray['bean']."<br/>";
// output:
// 20
// 30

Với cách tạo mảng trên, chúng ta dùng hàm array hoặc [ ] để khởi tạo mảng. Chúng ta cũng có cách khác để khai báo mảng bằng cách gán phần tử cho mảng từ đầu như ví dụ sau:

$myArr["John"] = "Hello"; 
$myArr['Roger'] = "abc"; 
$myArr["Susan'] = "def"; 

Tuy nhiên không nên sử dụng cách này để khởi tạo mảng vì khi bảo trì dự án dễ bị rối khi dự án trở nên phức tạp.

Multi-dimensional Arrays/ Mảng đa chiều

Mảng đa chiều là mảng mà mỗi phần tử trong mảng chính có thể là một mảng. Mỗi phần tử trong mảng con cũng có thể là một mảng, v.v. Nhiều chỉ mục được sử dụng để truy cập các giá trị trong mảng đa chiều.

Ví dụ:

<?php
$exampleArray = array(
    "John" => array(
        "age" => 18,
        "address" => "123 Street Road, City ST 54321",
        "phone" => "XXX-XXX-XXXX"
    ),
    "Roger" => array(
        "age" => 30,
        "address" => "456 Avenue Circle, City ST 12345",
        "phone" => "YYY-YYY-YYYY"
    ),
    "Susan" => array(
        "age" => 20,
        "address" => "789 Parkway Boulevard, City ST 67890",
        "phone" => "ZZZ-ZZZ-ZZZZ"
    )
);

Một số hàm sắp xếp mảng

PHP hỗ trợ nhiều hàm dựng sẵn để sắp xếp các phần tử mảng theo nhiều cách khác nhau, chẳng hạn như theo thứ tự bảng chữ cái hoặc số theo thứ tự tăng dần hoặc giảm dần, mục đích các hàm này giúp lập trình viên giảm thiểu thời gian làm việc, không phải suy nghĩ về các thuật toán sắp xếp mảng nữa. Chúng ta hãy xem xét một số hàm phổ biến nhất để sắp xếp mảng như sau:

  • sort() và rsort(): sắp xếp các mảng được lập chỉ mục được .
  • ksort() và krsort(): sắp xếp các mảng kết hợp theo khóa.
  • asort() và arsort(): Chúng được sử dụng để sắp xếp các mảng kết hợp theo giá trị.

Xem thêm tài liệu chính thức: https://www.php.net/manual/en/array.sorting.php

Sắp xếp nâng cao khả năng tìm kiếm đáng kể và cũng hỗ trợ các mẫu tăng hoặc giảm dựa trên mối quan hệ tuyến tính giữa các thành phần dữ liệu. Bảng mô tả danh sách hàm như sau:

Hàm sắp xếpMô tả
sort()Sắp xếp mảng theo thứ tự tăng dần
rsort()Sắp xếp mảng theo thứ tự giảm dần
asort()Sắp xếp các mảng kết hợp theo thứ tự tăng dần dựa theo giá trị
ksort()Sắp xếp mảng kết hợp theo thứ tự tăng dần, theo khóa (key)
arsort()Sắp xếp các mảng kết hợp theo thứ tự giảm dần, theo giá trị
krsort()Sắp xếp các mảng kết hợp theo thứ tự giảm dần, theo khóa

Sắp xếp mảng theo thứ tự tăng dần – sort()

<?php
$Student = array("Peter", "John", "David");
sort($Student);
$Sclength = count($Student);
for($x = 0; $x < $Sclength; $x++) {
    echo $Student[$x];
    echo "<br>";
}
//output:
//David
//John
//Peter

Sắp xếp mảng theo thứ tự giảm dần – rsort()

<?php
$Student = array("Peter", "John", "David");
rsort($Student);
$Sclength = count($Student);
for($x = 0; $x < $Sclength; $x++) {
    echo $Student[$x];
    echo "<br>";
}
//output 
//Peter
//John
//David

Sắp Xếp Mảng theo thứ tự tăng dần, theo giá trị – asort()

<?php
$ages = array("Peter"=>"60", "John"=>"37", "David"=>"43");
asort($ages);
foreach ($ages as $key => $value) {
  echo "Key=" . $key . ", Value=" . $value;
  echo "<br>";
}
// output
//Key=John, Value=37
//Key=David, Value=43
//Key=Peter, Value=60

Sắp Xếp Mảng theo thứ tự giảm dần, theo giá trị – arsort()

<?php
$ages = array("Peter"=>"60", "John"=>"37", "David"=>"43");
arsort($ages);
foreach ($ages as $key => $value) {
  echo "Key=" . $key . ", Value=" . $value;
  echo "<br>";
}
// output
//Key=Peter, Value=60
//Key=David, Value=43
//Key=John, Value=37

Sắp Xếp Mảng theo thứ tự tăng dần, theo Khóa – ksort()

$sage = array("Peter"=>"35", "John"=>"37", "David"=>"43");
ksort($sage);
foreach ($sage as $x => $x_value) {
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
} 
// output
//Key=David, Value=43
//Key=John, Value=37
//Key=Peter, Value=35

Sắp Xếp Mảng theo thứ tự giảm dần, theo Khóa – krsort()

$sage = array("Peter"=>"35", "John"=>"37", "David"=>"43");
ksort($sage);
foreach ($sage as $x => $x_value) {
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
} 
// output
//Key=Peter, Value=35
//Key=John, Value=37
//Key=David, Value=43

Ngoài ra, các bạn có thể tham khảo thêm các hàm sắp xếp của PHP docs offical để hiểu cách sử dụng của các hàm tương tự, và xem thêm bài viết https://hocvietcode.com/ham-functions-trong-php/ để xem thêm một số hàm nâng cao khi làm việc với mảng trong PHP

Bài tập

Bài1:

In ra bảng QLSV với yêu cầu sau:

  • Thông tin sinh viên là một mảng nhiều chiều với thông tin mỗi sinh viê n là một mảng con (associative array)
  • Sử dụng vòng lặp để duyệt và in ra html bảng sinh viên
  • Khi bấm vào nút thêm SV (sử dụng kiêến thức bài get hoặc post) thêm 1 hàng sinh viên vào cuối bảng.

Bài viết liên quan:

Hướng dẫn sử dụng xdebug để gỡ lỗi PHP bằng visual studio code môi trường windows
Hướng dẫn cấu hình Extension live server tự động tải lại PHP khi cập nhật file trên visual studio code
Kỹ thuật AJAX trong PHP
Làm việc với JSON trong PHP
Chuyển hướng trình duyệt, download file bằng HTTP Header trong PHP
Một số cải tiến mới của PHP 8
Nhận dạng trình duyệt và nền tảng trong PHP
Từ khóa final, static, overloading và magic method trong PHP
Abstract Class (lớp trừu tượng) trong PHP
Interface trong hướng đối tượng PHP
Method (phương thức), public,private,protected, method overriding trong hướng đối tượng PHP
Iterable và iterator trong PHP

1 Comments

  1. Pingback: Hàm (functions) trong PHP - Web888 chia sẻ kiến thức lập trình, kinh doanh, mmo

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

KHÁI NIỆM QUẢN LÝ DỰ ÁN CÔNG NGHỆ THÔNG TIN (IT PROJECT MANAGEMENT)

Cấu trúc lập trình và Mảng

Bắt đầu với C#

1. GIỚI THIỆU KHÁI NIỆM CHUẨN MỰC – ĐẠO ĐỨC VÀ VẤN ĐỀ NGHỀ NGHIỆP TRONG CNTT

2. ÁP DỤNG CÁC CHUẨN MỰC VÀ VẤN ĐỀ NGHỀ NGHIỆP TRONG CNTT

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×