------
Phần 58.
Mảng trong PHP
Đây là clip số 20: mảng trong PHP
Mảng (array) là một biến đặc biệt, có thể lưu được nhiều giá
trị thuộc nhiều kiểu dữ liệu khác nhau.
Chỉ số của mảng được bắt đầu từ 0.
Có ba loại mảng: mảng số nguyên, mảng kết hợp và mảng đa
chiều.
Đây là ví dụ về khai báo mảng: $things = array();
Đây là ví dụ về gán giá trị cho một phần tử của mảng:
$things[] = ‘table’;
Để đếm số phần tử của mảng, sử dụng hàm count(). Ví dụ,
<?php
$things
= array();
$things[]
= 'table';
$things[]
= 'book';
$things[]
= 'pen';
$length
= count($things);
echo
$length;
?>
Vậy, mảng sẽ rỗng nếu hàm count() trả về giá trị 0. Có cách
khác để kiểm tra mảng có rỗng hay không, là dùng hàm empty(), ví dụ:
empty($things) sẽ trả về 1 nếu $things rỗng và trả về 0 nếu $things không rỗng.
Để in nội dung của mảng (ở dạng dễ quan sát cấu trúc của
mảng), sử dụng hàm print_r() kết hợp với thẻ <pre> của HTML; ví dụ,
echo '<pre>';
print_r($things);
echo
'</pre>';
Đây là clip số 21: mảng liên tục
Mảng liên tục là mảng có chỉ số (key) là các số nguyên. Chỉ
số mảng mặc định bắt đầu từ 0.
Có thể khai báo và gán giá trị cho các phần tử của mảng theo
cách sau,
<?php
$things
= array();
$things[0]
= 'table';
$things[1]
= 'book';
$things[2]
= 'pen';
?>
Cũng có thể khai báo và gán giá trị cho các phần tử của mảng
theo cách sau,
<?php
$things
= array('table', 'book', 'pen', 'pencil');
?>
Sử dụng chỉ số mảng để tham chiếu đến một phần tử bất kì, ví
dụ, echo $things[2];
Đoạn mã sau xuất toàn bộ các phần tử của mảng:
<?php
$things
= array('table', 'book', 'pen', 'pencil');
for($i
= 0; $i < count($things); $i++) { echo $things[$i] . ' '; }
?>
Trong thực tế, thường sử dụng lệnh if và hàm empty để đảm
bảo ‘chỉ xuất mảng khi nó không rỗng’:
<?php
$things
= array('table', 'book', 'pen', 'pencil');
if(!empty($things))
{
for($i
= 0; $i < count($things); $i++) { echo $things[$i] . ' '; }
}
?>
Cách duyệt mảng thường được sử dụng là dùng vòng lặp
foreach, ví dụ:
<?php
$things
= array('table', 'book', 'pen', 'pencil');
if(!empty($things))
{
foreach
($things as $key => $value) { echo $value . ' '; }
}
?>
Trong vòng lặp foreach, $key chính là chỉ số mảng, $value là
giá trị của mảng tại vị trí $key tương ứng.
Đây là clip số 22: mảng không liên tục
Mảng không liên tục (hay mảng kết hợp) là mảng có chỉ số là
chuỗi hoặc có cả chuỗi và số.
Ví dụ,
<?php
$things['mon']
= 'Monday';
$things['tue']
= 'Tuesday';
$things['wed']
= 'Wednesday';
if(!empty($things))
{
foreach
($things as $key => $value) { echo $value . ' '; }
}
?>
Ví dụ sau là mảng có chỉ số vừa là kiểu chuỗi vừa là kiểu số
nguyên,
<?php
$things['mon']
= 'Monday';
$things['tue']
= 'Tuesday';
$things['wed']
= 'Wednesday';
$things[]
= 'table';
$things[]
= 'book';
if(!empty($things))
{
foreach
($things as $key => $value) { echo $value . ' '; }
}
?>
Cách khai báo mảng kết hợp gọn hơn, ví dụ,
$things = array(
'mon' => 'Monday',
'tue'
=> 'Tuesday',
'wed'
=> 'Wednesday',
0
=> ‘table’,
1
=> ‘book’);
Đây là clip số 23: mảng lồng – mảng đa chiều
Mảng đa chiều (hay mảng lồng) là mảng mà mỗi phần tử của
mảng là một mảng, tiếp đó mỗi phần tử của mảng con cũng có thể là một mảng. Ví
dụ,
<?php
$students
= array();
$students['SV01']
= array('name' => 'Teo', 'sex' => 1, 'score' => array(3, 5, 7));
$students['SV02']
= array('name' => 'Ti', 'sex' => 0, 'score' => array(5, 5, 7));
echo
'<pre>';
print_r($students);
echo
'</pre>';
?>
Kết quả xuất ra là,
Array
(
[SV01] => Array
(
[name] => Teo
[sex] => 1
[score] => Array
(
[0] => 3
[1] => 5
[2] => 7
)
)
[SV02] => Array
(
[name] => Ti
[sex] => 0
[score] => Array
(
[0] => 5
[1] => 5
[2] => 7
)
)
)
Cách khai báo mảng đa chiều dễ nhìn hơn,
$students = array(
'SV01'
=> array(
'name'
=> 'Teo',
'sex' => 1,
'score'
=> array(3, 5, 7)
),
'SV02'
=> array(
'name'
=> 'Ti',
'sex' => 0,
'score'
=> array(5, 5, 7)
)
);
Để truy cập tới phần tử trong mảng đa chiều, sử dụng các dấu
[], ví dụ, để in tên của sinh viên thứ hai,
echo $students['SV02']['name'];
Ví dụ, để in điểm môn 2 của sinh viên thứ 2,
echo $students['SV02']['score'][1];
-----------
Cập nhật [9/9/2020]
-----------