Monday, May 23, 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 Code

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

Foreach Loop in PHP

Tân Hồng IT by Tân Hồng IT
01/01/2020 - Updated on 03/01/2020
in Code, Code Web, Development, Khóa Học, Kiến thức, Kiến Thức Lập Trình, Learn PHP, PHP, Tài Liệu Lập Trình, Web Development, Website
Reading Time: 8 mins read
A A
0
QUẢNG CÁO

Ở bài trước ta đã học về các loại vòng lặp như for, while, do while các bạn có thể xem lại Bài 6: Các loại Vòng lặp trong PHP (for, while, do while). Còn ở bài này mình sẽ vẫn giới thiệu về vòng lặp nhưng nội dung chỉ xoay quanh duy nhất một vòng lặp đó là vòng lặp foreach trong PHP.

vong lap foreach trong php
Vòng lặp foreach trong PJP

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

  • Vòng lặp foreach trong PHP
    • Cú pháp
    • Bài tập ví dụ 1
    • Dùng tham chiếu để thay đổi phần tử hiện tại trong mảng foreach
  • Vòng lặp foreach lồng nhau (mảng 2 chiều)
  • Kết thúc:

Vòng lặp foreach trong PHP

Vòng lặp foreach là loại loop được dùng để duyệt các phần tử trong mảng, object. Đây là loại vòng lặp thường sẽ được sử dụng rất nhiều trong các dự án PHP sau này, đặc biệt là các bài liên kết đến cơ sở dữ liệu.

Cú pháp

<?php
foreach ($variable as $key => $value) {
    // code...
}
?>

hoặc

<?php
foreach ($variable as $value) {
    // code...
}
?>

Trong đó:

  • $variable: Là biến mà các bạn muốn lặp (có thể là array, object).
  • $key: Là các key của mảng hoặc properties của object.
  • $value: Là một biến tạm dùng để chứa giá trị được sao chép của từng phần tử của mảng, object.

Bài tập ví dụ 1

<?php
//Khởi tạo mảng có key tự tăng.
$array= [
    'A',
    'B',
    'C',
    'D'
];
// Lặp cả key lẫn value của mảng
foreach ($array as $key => $value) {
    echo "Đây là phần tử có key = $key và có giá trị= $value <br/>";
}
?>

Ở ví dụ trên thì $array là mảng ta truyền vào, $key và $value là 2 tham số mà ở mỗi vòng lặp nó tự động truyền giá trị. Kết quae xuất ra màn hình là:

Phần tử có key = 0 và giá trị= A
Phần tử có key = 1 và giá trị= B
Phần tử có key = 2 và giá trị= C
Phần tử có key = 3 và giá trị= D

Cũng từ bài ví dụ trên ta có thể dùng theo cú pháp thứ 2 của vòng lặp foreach trong php như sau:

<?php
//Khởi tạo mảng có key tự tăng.
$array= [
    'A',
    'B',
    'C',
    'D'
];
// Lặp lại value của mảng
foreach ($array as $value) {
    echo "$value -";
}
?>

Ở mỗi vòng lặp foreach, PHP sẽ tạo ra các bản sao để chúng ta lấy dữ liệu của phần tử đang lặp đó, bản sao này sẽ được loại bỏ ngay lập tức sau khi kết thúc vòng lặp. Và ở mỗi vòng lặp sẽ kiểm tra còn phần tử liền kề hay không? Nếu còn thì vòng lặp được tiếp tục, ngược lại thì sẽ dừng.

Ở ví dụ trên, các bản sao của biến $array đã được tạo ra và mình đã không truyền biến $key vào trong vòng forech nên mình chỉ có thể xuất được các giá trị $value ra màn hình mà thôi.

Kết quả xuất ra màn hình sẽ là: A -B -C -D –

Dùng tham chiếu để thay đổi phần tử hiện tại trong mảng foreach

Hãy xem ví dụ bên dưới.

<?php
$mang = array('one', 'two', 'three', 'four', 'five');
foreach ( $mang as $value ) {
    $value = strtoupper($value); // hàm strtoupper dùng để in hoa chuỗi ký tự
}
echo '<pre>';
print_r($mang); //xuất mảng
?>

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

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
    [4] => five
)

Ở ví dụ trên mình đã sử dụng hàm strtoupper nhằm mục đích in hoa hết các chuỗi ký tự là các giá trị của các phần tử có trong bảng array. Nhưng kết quả xuất ra màn hình vẫn là chứ thường.

Giải thích:

Khi bắng đầu 1 loop foreach, PHP sẽ tạo ra 1 bản sao của mảng gốc để lặp, cho nên khi thay đổi các giá trị trong mảng gốc thì sẽ không có tác dụng. Vì vậy khi lặp chúng ta sẽ truyền tham chiếu truy xuất đến mảng gốc, có như vậy thì PHP sẽ không tạo 1 bản copy mảng để dùng nữa mà nó sẽ được gọi đến và lặp trực tiếp trên mảng gốc. Khi này, chúng ta thay đổi giá trị các phần tử trong mảng gốc sẽ có tác dụng.

Cách gọi 1 tham chiếu cho biến: đặt thêm ký tự “&” trước biến đó.

Như vậy cũng từ ví dụ trên ta sẽ làm như sau:

<?php
$mang = array('Xin', 'Chao', 'Moi', 'Nguoi', 'Den', 'Voi', 'Khoa', 'Hoc', 'PHP', 'Can', 'Ban');
foreach ( $mang as &$value ) { //mình đã thêm ký tự & trước biến $value để gọi 1 tham chiếu
    $value = strtoupper($value); // hàm strtoupper dùng để in hoa chuỗi ký tự
}
echo '<pre>';
print_r($mang); //xuất mảng
?>

Ở đây mình đã sử dụng tham chiếu &$value để truy xuất đến mảng gốc, khi này ta thay đổi giá trị của các phần tử trong mảng gốc sẽ có hiệu lực và ra kết quả như sau.

Array
(
    [0] => XIN
    [1] => CHAO
    [2] => MOI
    [3] => NGUOI
    [4] => DEN
    [5] => VOI
    [6] => KHOA
    [7] => HOC
    [8] => PHP
    [9] => CAN
    [10] => BAN
)

Kết luận:

  • Foreach trong PHP sẽ tạo ra một bản sao của mảng để lặp.
  • Khi foreach đang lặp theo bản sao của mảng gốc thì thay đổi giá trị phần tử trong mảng theo cách thông thường sẽ không có tác dụng
  • Muốn thay đổi giá trị phần tử hiện tại trong khi lặp thì phải dùng tham chiếu.

Vòng lặp foreach lồng nhau (mảng 2 chiều)

Cũng như các vòng lặp đã được đề cập ở bài 6 thì đối với vòng lặp foreach trong bài này cũng có tính chất tương tự là có thể lồng nhau. Thường thì ta sẽ sử dụng vòng lặp foreach lồng nhau để duyệt phần tử của mảng 2 chiều.

Ví dụ: duyệt các phần tử của mảng 2 chiều bằng vòng lặp foreach:

<?php
//Khởi tạo mảng 2 chiều
$array = [
        0 => 1, 
        1 => [1 => 4, 2 => 6],
        2 => [1 => "aa", 2 => "bb"],
        3 => [1 => 10, 2 => "cc", 3 => 0]
];
foreach ($array as $value) {
    if (is_array($value)) {
        foreach ($value as $item) {
            echo $item . " - ";
        }
    } else
        echo $value . " - ";
}
?>

Như vậy ta sẽ có kêt quả như sau: 1 – 4 – 6 – aa – bb – 10 – cc – 0 –

Kết thúc:

Vậy là qua bài 6 và bài 7 này mình đã giới thiệu cho các bạn về 4 loạn vòng lặp khác nhau thường được dùng trong PHP. Nếu các bạn có thắc mắc nay cần tư vấn điều gì thì hãy để lại comment bên dưới bài viết này nhé!, Mình sẽ cố gắng hỗ trợ các bạn!

Hãy tiếp tục trong series học PHP căn bản ở các bài viết tiếp theo các bạn nhé!

Xem thêm:

  • Lộ trình học PHP Căn Bản
  • Bài 6: Các loại Vòng lặp trong PHP (for, while, do while)
  • Bài 5: Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch)
  • 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 - (2 votes)
Via: freetuts
Tags: CodeCode WebCông Cụ Lập TrìnhKiến thứcKiến Thức Lập TrìnhLearn PHPLinuxPhần MềmPHPWeb DevelopmentWebsite
ShareTweetSend
Bài viết trước

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

Bài tiếp theo

Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng 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
mang array trong php
Backend

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

16/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 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
lenh va function thuong dung trong php

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

ham function trong php

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

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

mang array trong php

Bài 10: Mảng (Array) 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.