Sunday, May 22, 2022
  • Home
    • Donate
    • Liên Hệ Tân Hồng IT
    • Yêu Cầu Phần Mềm, Thủ Thuật
    • Hướng dẫn tải File
  • Tài Liệu
  • Phần Mềm
  • Công cụ
  • Thủ Thuật
  • Download
  • Giải trí
  • Kiến thức
Tân Hồng IT
  • Home
    • Liên Hệ TanHongIT – các bạn có thể liên hệ với TanHongIT.Net Tại Đây
    • Donate – TanHongIT.Net
    • Yêu Cầu Phần Mềm, Thủ Thuật
    • Hướng dẫn tải File, phần mềm và các loại tài liệu khác trên TanHongIT.Net
  • Orther
    • Tool Online
      • Test Code Online
      • EnCoder SVG
      • HTML Converter
    • ShareVui – Online Movies
  • Tài Liệu
  • Code
    • PHP
    • Java
    • JavaScript
  • Kiến thức
  • Phần Mềm
  • Công cụ
  • Thủ Thuật
  • Download
  • Giải trí
No Result
View All Result
  • Home
    • Liên Hệ TanHongIT – các bạn có thể liên hệ với TanHongIT.Net Tại Đây
    • Donate – TanHongIT.Net
    • Yêu Cầu Phần Mềm, Thủ Thuật
    • Hướng dẫn tải File, phần mềm và các loại tài liệu khác trên TanHongIT.Net
  • Orther
    • Tool Online
      • Test Code Online
      • EnCoder SVG
      • HTML Converter
    • ShareVui – Online Movies
  • Tài Liệu
  • Code
    • PHP
    • Java
    • JavaScript
  • Kiến thức
  • Phần Mềm
  • Công cụ
  • Thủ Thuật
  • Download
  • Giải trí
No Result
View All Result
Tân Hồng IT
No Result
View All Result
Home Backend

Bài 10: Mảng (Array) Trong PHP

Bài 10 - Học lập trình PHP căn bản

Tân Hồng IT by Tân Hồng IT
16/01/2020
in Backend, Code, Code Web, Development, Khóa Học, Kiến Thức Lập Trình, Learn PHP, PHP, Web Development, Website
Reading Time: 13 mins read
A A
0
QUẢNG CÁO

Đây là bài viết thứ 9 trong series học PHP căn bản, trong bài này mình sẽ chỉ giới thiệu về mảng (Array) trong PHP và các kiến thức liên quan đến mảng mà các bạn cần nắm vững.

Trước đây mình đã từng giới thiệu và nói qua về mảng ở bài 3: các kiểu dữ liệu trong PHP. Nhưng qua bài này mình sẽ trình bày lại tất cả nhé!

Cũng như bao ngôn ngữ lập trình khác. PHP cũng tồn tại một loại dữ liệu được gọi là mảng. Mảng Array là một loại biến đặc biệt, trong nó giữ nhiều giá trị. Mỗi giá trị trong mảng được gọi là phần tử của mảng.

mang array trong php
Mảng (Array) Trong PHP

Một mảng là một cấu trúc dữ liệu mà lưu giữ danh sách các phần tử có cùng kiểu dữ liệu và nó là một trong các kiểu dữ liệu trong php có độ phức tạp tính toán cao. Riêng với PHP thì các phần tử của mảng có thể không cùng kiểu dữ liệu, và các phần tử của mảng thường được truy xuất thông qua các chỉ mục(vị trí) của nó nằm trong mảng.

Mục Lục Bài Viết

  • Cú pháp tạo một mảng
    • Có 3 loại mảng trong PHP
  • Loại 1. Indexed Arrays – Mảng được lập chỉ mục
    • Ví dụ minh họa cách tạo và truy cập mảng số được lập chỉ mục trong PHP.
    • Ví dụ về truy xuất Array_Name[indexed]
    • Thêm phần tử mới vào mảng
  • Loại 2. Associative Arrays– Mảng liên hợp
  • Loại 3. Multidimensional Arrays– Mảng đa chiều
  • Kết thúc

Cú pháp tạo một mảng

Để tạo mảng chúng ta sử dụng hàm array() trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [ ] cũng được)

Note: Các bạn dùng hàm var_dump($mang); để in ra các phần tử của mạng để test trong quá trình học nhé. Hàm này có thể sử dụng được tất cả các kiểu dữ liệu trong php. (Hàm var_dump chỉ dùng để test).

//cách tạo mảng 1
<?php
    $names=array("Tan","Binh","Minh");
    var_dump($names);
?>
//cách tạo mảng 2
<?php 
$names=array(
0 => 'Tan',
1 => 'Binh',
2 => 'Minh'
); 
var_dump($names); 
?>
//cách tạo mảng 3 
<?php 
$names=array(); 
$names[0] = 'Tan';
$names[1] = 'Binh';
$names[2] = 'Minh';
var_dump($names);
?>
//cách tạo mảng 4 
<?php 
$names=array(); 
$names[] = 'Tan'; 
$names[] = 'Binh'; 
$names[] = 'Minh'; 
var_dump($names); 
?>

Có 3 loại mảng trong PHP

  1.  Mảng indexed – Mảng được lập chỉ mục
  2. Mảng associative – Mảng liên hợp
  3. Mảng Multidimensional – Mảng chứa một hoặc nhiều mảng

Chúng ta sẽ cùng tìm hiểu theo thứ tự từng loại mảng trên.

Loại 1. Indexed Arrays – Mảng được lập chỉ mục

Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng dạng số. Một biến mảng dạng này chỉ số sẽ gán một cách tự động, theo chỉ mục mảng mặc định bắt đầu từ số không khi phần tử đầu tiên được thêm vào, cứ thế phần tử thứ 2 thêm vào mảng sẽ có chỉ số là 1.

Ví dụ minh họa cách tạo và truy cập mảng số được lập chỉ mục trong PHP.

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");
    
    foreach( $names as $value ) // sử dụng vòng lặp foreacch để duyệt phần tử trong mảng
    {
    echo "Tên: $value <br />";
    }
    var_dump($names); //xuất mảng
    
    /*Ví dụ 2: xuất lần lượt các giá trị có trong mảng */
    $numbers[0] = "one";
    $numbers[1] = 2;
    $numbers[2] = "three";
    $numbers[3] = 4;
    $numbers[4] = "five";
    
    var_export($numbers);
?>

sau khi chạy lên, kết quả của lệnh var_dump($names); trên màn hình như sau:

array (size=5)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)

Như vậy phần tử có chỉ số 0 thì giá trị là 'Nam', chỉ số 1 giá trị là ‘Mai’ … chỉ số này dùng với ký hiệu Array_Name[indexed] để truy xuất ( đọc hoặc gán) phần tử mảng:

Ví dụ về truy xuất Array_Name[indexed]

Từ ví dụ bên trên ta sẽ truy xuất 1 phần tử trong mảng ra như sau:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");
    
    foreach( $names as $value ) // sử dụng vòng lặp foreacch để duyệt phần tử trong mảng
    {
    echo "Tên: $value <br />";
    }
    var_dump($names);

    //truy xuất phần tử có chỉ mục là số 1 có trong mảng $names
    echo $names[1];

    //kết quả xuất ra màn hình sẽ là 'Mai'
?>

Thêm phần tử mới vào mảng

Bạn có thể thêm phần tử mới vào trong mảng bằng cách viết bên dưới:

$arrayName[indexed] = $giatri; 

// biến $giatri có thể là một biến có sẵn hoặc cũng có thể là một giá trị mới mà bạn muốn gán vào.
//phần tử mới nhất được thêm vào sẽ luôn nằm cuối mảng, dù cho giá trị index có là bao nhiêu đi chăng nữa

Ví dụ 1:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");

    //thêm 2 phần tử mới vào mảng $names
    $names[7]=0;
    $names[6]=9;

    var_dump($names);
?>

Kết quả thấy được sẽ là:

array (size=7)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)
  7 => int 0
  6 => int 9

Bạn thấy mặc dù chỉ số 6 bé hơn chỉ số 7 nhưng khi biểu diễn trong mảng nó lại nằm dưới chỉ số 7, Bởi vì khi thêm phần tử mình đã cố ý thêm phần tử có chỉ số 7 trước cho nên nó sẽ được thêm vào mảng trước phần tử có chỉ số là 6.

Điều này sẽ tuân thủ quy tắc: phần tử mới nhất được thêm vào sẽ luôn nằm cuối mảng, dù cho giá trị index có là bao nhiêu đi chăng nữa


Có một cách thêm thứ 2 mà bạn cần biết đó là phương pháp thêm sau:

$arrayName[] = $giatri;

// biến $giatri có thể là một biến có sẵn hoặc cũng có thể là một giá trị mới mà bạn muốn gán vào.
// Phần tử này khi được thêm vào sẽ nằm phía sau phần tử cuối cùng của mảng. Khi đó chỉ số phần tử này sẽ bằng chỉ số lớn nhất của mảng cộng thêm 1
// nếu đây là phần tử đầu tiên của mảng thì chỉ số sẽ là 0

Ví dụ 2:

<?php
    /*Ví dụ 1: xuất danh sách các tên có trong mảng bằng cách sử dụng vòng lặp */
    $names = array( "Nam", "Mai", "Trúc", "Linh", "Phong");

    //thêm 2 phần tử mới vào mảng $names
    $names[7]=0;
    $names[6]=9;

    //thêm phần tử mới vào mảng $names theo cách 2
    $names[] = 100;
    $names[] = "hé nô";

    var_dump($names);
?>

Kết quả trên màn hình sẽ là:

array (size=9)
  0 => string 'Nam' (length=3)
  1 => string 'Mai' (length=3)
  2 => string 'Trúc' (length=5)
  3 => string 'Linh' (length=4)
  4 => string 'Phong' (length=5)
  7 => int 0
  6 => int 9
  8 => int 100
  9 => string 'hé nô' (length=7)

2 cách thêm phần tử vào mảng trên cách nào cũng đúng cả, tuỳ vào cách sử dụng của mỗi người và tuỳ vào trường hợp của bài toán mà ta sẽ phải lựa chọn cho phù hợp.


Tử 2 ví dụ trên, ta thấy chỉ số index không phải là thứ tự sắp xếp các phần tử trong mảng. Và chỉ số index không phải và không liên quan đến số lượng phần tử có trong mảng Mục đích của nó chỉ là lập chỉ mục cho các phần tử có trong mảng mà thôi. 

Loại 2. Associative Arrays– Mảng liên hợp

Các mảng liên hợp là khá giống với các mảng Indexed về tính năng, nhưng chúng khác nhau về chỉ mục. Chỉ mục của Associative Arrays sẽ ở dạng chuỗi(string) nhằm giúp bạn có thể thiết lập một liên kết mạnh giữa key và value.

<?php
    $numbers  =  [
        'one' => "số 1",
        'two' => "số 2",
        'three' => "số 3",
        'four' => "số 4"
    ];
    //dùng vòng lặp foreach để duyệt mảng
    foreach ($numbers as $key => $value) {
        echo "$key ($value)", PHP_EOL; // PHP_EOL tương tự như dấu cách (space)
    }

    // Kết quả màn hình: one (số 1) two (số 2) three (số 3) four (số 4)

    var_dump($numbers);
?>

Kết quả của var_dump($numbers); trên màn hình:

array (size=4)
  'one' => string 'số 1' (length=6)
  'two' => string 'số 2' (length=6)
  'three' => string 'số 3' (length=6)
  'four' => string 'số 4' (length=6)

Như vậy, từ ví dụ trên ta thấy chỉ mục của các phần tử bây giờ không còn là các số nguyên nữa mà là các chuỗi ký tự.

Trong vòng lặp foreach, khi xuất ra các $key (các chỉ mục) thì sẽ có giá trị tương ứng là các $value.

Và để lấy giá trị của phần tử bất kỳ trong mảng ta cũng không thể sử dụng theo cách echo $numbers[0] giống mảng indexed nữa, ta phải gọi đúng chỉ mục là các chuỗi ký tự giống như sau: echo $numbers[‘one’]. Như vậy mới có kết quả ra màn hình là ‘số 1’.

Loại 3. Multidimensional Arrays– Mảng đa chiều

Mảng đa chiều là mảng trong nó chứa một hay nhiều mảng khác. Tức là trong 1 mảng, mỗi phần tử của nó có thể sẽ là một mảng (các mảng con), và có thể mỗi phần tử của mảng con cũng sẽ là một mảng (các mảng cháu),..v.v..

Ví dụ: mảng 2 chiều xuất ra thông tin điểm môn học của các học sinh.

<?php
    $diem = [
        'Nguyễn Văn A' => [
            'Toán' => 8,
            'Lý' => 7,
            'Hóa'  => 9
        ],
        'Nguyên Văn B' => [
            'Toán' => 6,
            'Lý' => 5,
            'Hóa'  => 7
        ],
        'Nguyễn C' => [
            'Toán' => 4,
            'Lý' => 9,
            'Hóa'  => 7
        ],
    ];
    foreach ($diem as $ten => $diem_hoc_tap) {
        echo $ten . "<br>";
        foreach ($diem_hoc_tap as $tem_mon => $diem_cua_mon) {
            echo "__$tem_mon" . " - " . $diem_cua_mon . "<br>";
        }
        echo "<br>";
    }
?>

Kết quả:

Nguyễn Văn A
__Toán - 8
__Lý - 7
__Hóa - 9
Nguyên Văn B
__Toán - 6
__Lý - 5
__Hóa - 7

Nguyễn C
__Toán - 4
__Lý - 9
__Hóa - 7

Các xuất phần tử trong mảng đa chiều  bạn cần phải truyền đủ các chỉ mục thuộc các cấp có trong mảng.

Ở ví dụ trên là mảng 2 chiều, như vậy ta sẽ truyền cả 2 chỉ mục mới có thể xuất ra màn hình, nếu không sẽ báo lỗi.

echo $diem['Nguyễn Văn A']['Toán']; // kết quả : 8

Kết thúc

Vậy là qua bài trên mình đã giới thiệu cho các bạn về mảng cũng như nói rõ các loại mảng có trong PHP mà bạn cần nắm. Mảng là khái niệm mà bạn nên nắm vững để sau này đi vào phần lập trình PHP hướng đối tượng các bạn sẽ phải dùng rất nhiều.

Hàm, mảng và vòng lặp là 3 khái niệm bạn cần vững vàng để sau này áp dụng vào lập trình PHP có lết hợp với cấu trúc dữ liệu MySql cũng như lập trình hướng đối tượng. Nếu có thắc mắc hay có chỗ nào sai sót mong các bạn để lại comment bên dưới bài viết chúng mình cũng thảo luận nhé!

Ở bài viết tiếp theo của series học PHP căn bản mình sẽ nói về các hàm xử lý cho mảng để các bạn có thể áp dụng sau này. Hãy tiếp tục với series học PHP căn nản nha ❤️

Xem thêm:

    • Lộ trình học PHP Căn Bản
    • Bài 9: Hàm (Function) Trong PHP
    • Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP
    • Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)
    • Cách sửa lỗi error establishing a database connection cho website
    • Mở Đọc File Excel Trong C# Với Microsoft Office Interop Excel dll
Nếu các bạn cảm thấy Website TanHongIT.Net thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!
CHÚC CÁC BẠN THÀNH CÔNG
5/5 - (1 vote)
Tags: BackendCodeCode WebKhóa HọcKiến thứcKiến Thức Lập TrìnhLearn PHPLinuxPHPWeb DevelopmentWebsite
ShareTweetSend
Bài viết trước

Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp

Bài tiếp theo

Bài 11: Các hàm xử lý mảng (Array) trong PHP

Tân Hồng IT

Tân Hồng IT

Không có một lời khuyên hay câu triết lý nào có đủ khả năng để áp đặt vào mọi hoàn cảnh trong cuộc sống của chúng ta cả. Nó luôn có những ngoại lệ riêng biệt...

Liên quan Posts

phuong thuc get post trong php
Backend

Bài 13: Phương thức GET và POST trong PHP

06/02/2020
chuoi string va cac ham xu ly trong php
Backend

Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

25/01/2020
cac ham xu ly mang php
Backend

Bài 11: Các hàm xử lý mảng (Array) trong PHP

19/01/2020 - Updated on 21/01/2020
code web nam moi 2020
Code

Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp

14/01/2020
ham function trong php
Backend

Bài 9: Hàm (Function) Trong PHP

14/01/2020
lenh va function thuong dung trong php
Backend

Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

10/01/2020 - Updated on 11/01/2020
vong lap foreach trong php
Code

Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)

01/01/2020 - Updated on 03/01/2020
vong lap trong php
Code

Bài 6: Các loại Vòng lặp trong PHP (for, while, do while)

28/12/2019
Bài tiếp theo
cac ham xu ly mang php

Bài 11: Các hàm xử lý mảng (Array) trong PHP

chuoi string va cac ham xu ly trong php

Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

phuong thuc get post trong php

Bài 13: Phương thức GET và POST trong PHP

0 0 votes
Article Rating
Subscribe
Đăng nhập
Thông báo về
guest
guest
0 Comments
Inline Feedbacks
View all comments
  • Trending
  • Comments
  • Latest
Tải Và Cách Crack IDM 6.32

Tải Và Cách Crack IDM 6.35 Build 10 Vĩnh Viễn Mới Nhất 2019 – Không Báo Fake Serial [UPDATE]

27/11/2018 - Updated on 14/11/2019
IDM Full Toolkit - Crack IDM Tiện Lợi - Không Báo Fake Serial

IDM Full Toolkit – Crack IDM Tiện Lợi – Không Báo Fake Serial

10/08/2018 - Updated on 14/11/2019
Download DLC Boot 2019 v3.6 - Bộ Công Cụ Tạo USB Boot Đa Năng Cứu Hộ Máy Tính, PC

Download DLC Boot 2019 v3.6 – Bộ Công Cụ Tạo USB Boot Đa Năng Cứu Hộ Máy Tính, PC

15/04/2019 - Updated on 21/08/2019
Download Và Cách Crack Full IDM 6.33

Download Và Cách Crack Full IDM 6.35 Build 10 Vĩnh Viễn Mới Nhất 2019 – Không Báo Fake Serial [UPDATE]

07/05/2019 - Updated on 14/11/2019

Cách đổi trạng thái biểu tượng cảm xúc Angry thành “Dislike ” trên Facebook

124

Chia sẻ Khoá học Adobe InDesign CC – Hướng dẫn đầy đủ cho bạn về InDesign

32

Chia sẻ khóa học Cách giải khối Rubik 3×3 cho người mới bắt đầu

26

[UDEMY] Chia sẻ Khoá học 15 cách học tiếng anh – 15 Ways To Learn English

24
phuong thuc get post trong php

Bài 13: Phương thức GET và POST trong PHP

06/02/2020
chuoi string va cac ham xu ly trong php

Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

25/01/2020
cac ham xu ly mang php

Bài 11: Các hàm xử lý mảng (Array) trong PHP

19/01/2020 - Updated on 21/01/2020
mang array trong php

Bài 10: Mảng (Array) Trong PHP

16/01/2020

Bài Viết Mới

phuong thuc get post trong php

Bài 13: Phương thức GET và POST trong PHP

06/02/2020
chuoi string va cac ham xu ly trong php

Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

25/01/2020
cac ham xu ly mang php

Bài 11: Các hàm xử lý mảng (Array) trong PHP

19/01/2020 - Updated on 21/01/2020
mang array trong php

Bài 10: Mảng (Array) Trong PHP

16/01/2020
code web nam moi 2020

Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp

14/01/2020
ham function trong php

Bài 9: Hàm (Function) Trong PHP

14/01/2020

Mới Cập Nhật

phuong thuc get post trong php

Bài 13: Phương thức GET và POST trong PHP

06/02/2020
chuoi string va cac ham xu ly trong php

Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP

25/01/2020
cac kieu du lieu php

Bài 3: Những kiểu dữ liệu trong PHP

07/12/2019 - Updated on 25/01/2020
cac ham xu ly mang php

Bài 11: Các hàm xử lý mảng (Array) trong PHP

19/01/2020 - Updated on 21/01/2020
mang array trong php

Bài 10: Mảng (Array) Trong PHP

16/01/2020
code web nam moi 2020

Share Code Đếm Ngược Chào Mừng Năm Mới 2020 Với Hiệu Ứng Tuyệt Đẹp

14/01/2020

Tân Hồng IT là Trang Chia sẻ Kiến Thức, Tài Liệu, Khóa Học, Công Nghệ Thông Tin, Phần Mềm, Thủ Thuật, Tiện Ích Máy Tính

DMCA.com Protection Status

Donate – Xin Ủng Hộ Đóng Góp

DONATE
TanHongIT.Com | Hung1001 | LinuxTeamVN
  • About
  • Donate
  • Contact
  • Download File
  • Request
  • Other

© 2019 Facebook - Chia sẻ Kiến Thức, Công Nghệ Thông Tin , Phần Mềm, Thủ Thuật, Tiện Ích Máy Tính Tân Hồng IT.

No Result
View All Result
  • Home
    • Donate
    • Liên Hệ Tân Hồng IT
    • Yêu Cầu Phần Mềm, Thủ Thuật
    • Hướng dẫn tải File
  • Tài Liệu
  • Phần Mềm
  • Công cụ
  • Thủ Thuật
  • Download
  • Giải trí
  • Kiến thức

© 2019 Facebook - Chia sẻ Kiến Thức, Công Nghệ Thông Tin , Phần Mềm, Thủ Thuật, Tiện Ích Máy Tính Tân Hồng IT.

THÔNG BÁO: TanHongIT.Net sẽ sớm dừng cập nhật mọi bài viết và đã có một blog mới mới tại TanHongIT.ComĐi đến TanHongIT.Com
+ +
wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Visit our Privacy and Cookie Policy.