Bài học hôm nay mình xin giới thiệu tới các bạn về mảng và vòng lặp ở trên php - Chi tiết các bạn xem tại bài viết dưới đây nhé.
Tổng quan
Đối với các beginners: Để hiểu đầy đủ các khái niệm này, tôi khuyên bạn nên đọc phần 1 của bài viết này. Trong phần 2 chúng ta sẽ tìm hiểu về cách sử dụng các thành phần cơ bản của PHP. Bài viết này giới thiệu về việc tạo và sử dụng mảng và vòng lặp để lưu trữ và truy vấn dữ liệu khi bạn cần.
Hoặc các bạn xem chi tiết tại đây: https://vietpro.net.vn/hoc-lap-trinh-web-php-co-ban
Array
Mảng là những gì bạn đưa vào khi tạo ra các biến giống nhau lặp đi lặp lại. Có hai từ được sử dụng khi nói đến nội dung của một mảng là "key" và "value". Mỗi mảng có ít nhất 1 key và value. Chúng sẽ luôn luôn đi theo cặp. Có ba kiểu mảng: Associative (mảng kết hợp), Numeric (mảng số), và Multidimensional (mảng đa chiều). Các mảng đa chiều chỉ đơn giản là mảng trong mảng. Chúng ta sẽ chỉ xét đến hai loại đầu tiên.
Mảng kết hợp
Mảng kết hợp rất hữu ích khi key được khai báo bởi programmer. Ví dụ tôi sẽ tạo một mảng chứa các thông tin cá nhân của bản thân. Dưới đây bạn sẽ thấy hai cách sắp xếp mảng trong PHP. Mục đích của cách thứ hai chỉ để trình bày cho dễ đọc.
<>
$personalInfo = array("name"=>"Ozawa","occupation"=>"acctress","location"=>"Japan");
?>
<>
$personalInfo = array(
'name' => 'Ozawa',
'occupation'=> 'acctress',
'age' => 30,
'location' => 'Japan'
);
?>
Hai cách trên đều ok - nhưng làm thế nào để thông tin của tôi được hiển thị trên HTML? Câu hỏi thú vị đấy! Nó rất giống với việc hiển thị một biến chỉ khác cái là bạn thêm vào một ít dữ liệu nữa: đó là key
My name is and I am a in and am years old.
Hình như có gì không ổn? Cái mớ hỗn độn này là gì vậy? Thực ra thì là viết tắt của . Trong phần một bạn đã biết được rằng lệnh echo giống như lệnh print trong các ngôn ngữ khác. Đây chỉ là cách viết tắt để giảm bớt thời gian coding.
Mảng số
Đôi khi bạn không cần có một từ để kết hợp với một value trong một mảng. Trong trường hợp đó bạn sẽ sử dụng mảng số đó trong PHP. Ở trên chúng ta đã sử dụng dấu bằng và theo sau là dấu lớn hơn (=>) để set các values của mảng thành các keys. Với mảng số bạn chỉ cần set các values và các keys được tự động tăng. Hãy xem:
<>
$type = array('censored','uncensored');
?>
Như các bạn thấy tôi không làm gì ngoại trừ việc đặt các values vào trong mảng này. PHP sẽ tự động gán keys cho chúng ta. Các bạn beginners sẽ luôn đặt keys bắt đầu từ 0 và tăng thêm 1 với mỗi element mới của mảng.
Khi đi sâu vào tìm hiểu về mảng bạn sẽ biết rằng mình có thể thao tác với chúng theo ý muốn - nhưng tôi sẽ không nói đến vấn đề đó ở đây. Có thể bạn sẽ hỏi "Làm sao tôi biết keys nào cần sử dụng?". Cách đơn giản là bắt đầu từ số 0 và tìm element của bạn. Ví dụ key của "censored" là 0 còn key của "uncensored" là 1. Khá đơn giản phải không?. Đôi khi mảng của bạn sẽ trở nên lớn hơn và chỉ sau 10 giây có thể lên đến hàng trăm. Tin tôi đi, bạn không muốn ngồi đó và đếm mớ hỗn độn đấy đâu!. Ý nghĩ đầu tiên của bạn có thể chỉ là chạy dòng lệnh "echo $type" nhưng nó chỉ hiện ra từ "Array". PHP cung cấp cho chúng ta một vài cách đơn giản để xem dữ liệu trong mảng. Hãy xem 2 cách đó như thế nào
<>
$personalInfo = array(
'name' => 'Ozawa',
'occupation'=> 'acctress',
'age' => 30,
'location' => 'Japan'
);
$type = array('censored','uncensored');
print_r($personalInfo);
var_dump($type);
?>
Chạy code này trên trình duyệt có thể tạo ra một thứ trông khá ngứa mắt và khó đọc. Hãy viết thêm đoạn code sau echo '
'; ở trên đầu mỗi dòng print_r hoặc var_dump để hiển thị mảng trong đẹp hơn.
Kết quả là đây:
Array
(
[0] => censored
[1] => uncensored
)
array(4)
["name"]=>
string(5) "Ozawa"
["occupation"]=>
string( "acctress"
["age"]=>
int(30)
["location"]=>
string(5) "Japan"
print_r(), chỉ đơn giản là in ra các cấu trúc và nội dung của mảng. Các keys sẽ nằm bên trái trong dấu ngoặc và các values sẽ nằm bên phải các keys tương ứng. Trong function thứ hai, var_dump(), bạn sẽ biết thêm chút thông tin về data của mình.
Hướng dẫn về các ngôn ngữ khác: https://vietpro.net.vn/hoc-ajax
Hãy chú ý một chút tới dòng đầu tiên "array(4)". Có nghĩa là "Đây là một mảng và nó chứa 4 phần tử". Ở dòng tiếp theo bạn thấy key đầu tiên là "string (11)". Nó nói "Đây là một chuỗi bao gồm 11 ký tự" (hãy nhớ rằng một khoảng trống cũng được coi là một ký tự). Dòng tiếp theo với key "age" và nó nói int(23), "Đây là một số nguyên với giá trị là 23".
Mảng đa chiều
Như đã đề cập ở trên một mảng đa chiều là một mảng có chứa ít nhất một mảng như một value. Tôi tạo một mảng cho các thành viên trong team
<>
$company = array(
'info' => array(
'name' => 'Awesome Web Company',
'location' => 'Savannah, GA',
'website' => ),
'staff' => array(
array('name'=>'Kermit the Frog','position' => 'CEO'),
array('name'=>'Hiro Nakamura','position' => 'Art Director'),
array('name'=>'Justin Luong','position' => 'Web Developer')
)
);
?>
Như bạn có thể thấy các mảng đa chiều có thể rất khó hiểu. Đây là một ví dụ đơn lẻ vì thông thường kiểu dữ liệu này sẽ được lưu trữ trong cơ sở dữ liệu và sau đó được đưa vào PHP. Tuy nhiên, do mục đích của việc học về mảng, chúng ta sẽ bắt đầu với dữ liệu trong PHP. Key đầu tiên trong mảng này được gọi là "info" và giá trị của nó là một mảng kết hợp có chứa thông tin công ty. Key thứ hai của mảng $company là 'staff' và giá trị của nó là một mảng số. Chúng ta hãy nhìn vào cấu trúc trước khi bắt đầu. Chạy print_r($company) sẽ như sau
Array
(
[info] => Array
(
[name] => Awesome Web Company
[location] => Savannah, GA
[website] =>
)
[staff] => Array
(
[0] => Array
(
[name] => Kermit the Frog
[position] => CEO
)
[1] => Array
(
[name] => Hiro Nakamura
[position] => Art Director
)
[2] => Array
(
[name] => Willy Wonka
[position] => Web Developer
)
)
)
Dưới đây là một ví dụ của việc sử dụng dữ liệu từ mảng đa chiều này:
Located in and online at [url==$company['info']['website']?>][/url].
Vòng lặp
Chúng ta đã đi vào mảng và một cách tự nhiên dẫn ta đến với vòng lặp. Trong đoạn code cuối cùng chúng ta đã liệt kê các nhân viên trong mảng $company. Sẽ thế nào nếu chúng ta muốn lặp qua từng nhân viên và hiển thị thông tin theo một cách giống nhau? Lúc này ta sẽ sử dụng vòng lặp foreach trông như sau:
<>
foreach($array as $key => $value)
...code ở đây
?>
Lưu ý rằng đã có ba biến được truyền vào function này. Biến đầu tiên là mảng chúng ta đang làm việc. Biến thứ hai và thứ ba do bạn định nghĩa. Chúng tham chiếu đến dữ liệu của mảng bên trong dấu ngoặc nhọn. Chúng ta sẽ xem xét điều này vào một lúc nào đó. Nhưng trước tiên, giống như lệnh echo có một cách viết tắt hay một cú pháp thay thế, foreach cũng sẽ có cách viết ngắn gọn giúp bạn kết hợp giữa PHP và HTML. Cách viết này giữ cho code càng trong sáng khi làm việc với HTML. Nó sẽ trông như thế này:
$value) : ?>
Some html and some php will go here
Bạn sẽ thấy định dạng này trong các câu lệnh if và vòng lặp while (ví dụ trong Wordpress). Trở lại với mảng thông tin của công ty, hãy xây dựng một trang web với các dữ liệu đó
<>
$company = array(
'info' => array(
'name' => 'Awesome Web Company',
'location' => 'avannah, GA',
'website' => 'staff' => array
array('name'=>'Kermit the Frog','position' => 'CEO'),
array('name'=>'Hiro Nakamura','position' => 'Art Director'),
array('name'=>'Willy Wonka','position' => 'Web Developer')
)
);
?>
Located in and online at [url==$company['info']['website']?>][/url].
Chia sẻ về các ngôn ngữ khác https://vietpro.net.vn/hoc-html-va-css
Bài học hôm nay kết thúc tại đây. Chúc các bạn học tập tốt.
Tổng quan
Đối với các beginners: Để hiểu đầy đủ các khái niệm này, tôi khuyên bạn nên đọc phần 1 của bài viết này. Trong phần 2 chúng ta sẽ tìm hiểu về cách sử dụng các thành phần cơ bản của PHP. Bài viết này giới thiệu về việc tạo và sử dụng mảng và vòng lặp để lưu trữ và truy vấn dữ liệu khi bạn cần.
Hoặc các bạn xem chi tiết tại đây: https://vietpro.net.vn/hoc-lap-trinh-web-php-co-ban
Array
Mảng là những gì bạn đưa vào khi tạo ra các biến giống nhau lặp đi lặp lại. Có hai từ được sử dụng khi nói đến nội dung của một mảng là "key" và "value". Mỗi mảng có ít nhất 1 key và value. Chúng sẽ luôn luôn đi theo cặp. Có ba kiểu mảng: Associative (mảng kết hợp), Numeric (mảng số), và Multidimensional (mảng đa chiều). Các mảng đa chiều chỉ đơn giản là mảng trong mảng. Chúng ta sẽ chỉ xét đến hai loại đầu tiên.
Mảng kết hợp
Mảng kết hợp rất hữu ích khi key được khai báo bởi programmer. Ví dụ tôi sẽ tạo một mảng chứa các thông tin cá nhân của bản thân. Dưới đây bạn sẽ thấy hai cách sắp xếp mảng trong PHP. Mục đích của cách thứ hai chỉ để trình bày cho dễ đọc.
<>
$personalInfo = array("name"=>"Ozawa","occupation"=>"acctress","location"=>"Japan");
?>
<>
$personalInfo = array(
'name' => 'Ozawa',
'occupation'=> 'acctress',
'age' => 30,
'location' => 'Japan'
);
?>
Hai cách trên đều ok - nhưng làm thế nào để thông tin của tôi được hiển thị trên HTML? Câu hỏi thú vị đấy! Nó rất giống với việc hiển thị một biến chỉ khác cái là bạn thêm vào một ít dữ liệu nữa: đó là key
My name is and I am a in and am years old.
Hình như có gì không ổn? Cái mớ hỗn độn này là gì vậy? Thực ra thì là viết tắt của . Trong phần một bạn đã biết được rằng lệnh echo giống như lệnh print trong các ngôn ngữ khác. Đây chỉ là cách viết tắt để giảm bớt thời gian coding.
Mảng số
Đôi khi bạn không cần có một từ để kết hợp với một value trong một mảng. Trong trường hợp đó bạn sẽ sử dụng mảng số đó trong PHP. Ở trên chúng ta đã sử dụng dấu bằng và theo sau là dấu lớn hơn (=>) để set các values của mảng thành các keys. Với mảng số bạn chỉ cần set các values và các keys được tự động tăng. Hãy xem:
<>
$type = array('censored','uncensored');
?>
Như các bạn thấy tôi không làm gì ngoại trừ việc đặt các values vào trong mảng này. PHP sẽ tự động gán keys cho chúng ta. Các bạn beginners sẽ luôn đặt keys bắt đầu từ 0 và tăng thêm 1 với mỗi element mới của mảng.
Khi đi sâu vào tìm hiểu về mảng bạn sẽ biết rằng mình có thể thao tác với chúng theo ý muốn - nhưng tôi sẽ không nói đến vấn đề đó ở đây. Có thể bạn sẽ hỏi "Làm sao tôi biết keys nào cần sử dụng?". Cách đơn giản là bắt đầu từ số 0 và tìm element của bạn. Ví dụ key của "censored" là 0 còn key của "uncensored" là 1. Khá đơn giản phải không?. Đôi khi mảng của bạn sẽ trở nên lớn hơn và chỉ sau 10 giây có thể lên đến hàng trăm. Tin tôi đi, bạn không muốn ngồi đó và đếm mớ hỗn độn đấy đâu!. Ý nghĩ đầu tiên của bạn có thể chỉ là chạy dòng lệnh "echo $type" nhưng nó chỉ hiện ra từ "Array". PHP cung cấp cho chúng ta một vài cách đơn giản để xem dữ liệu trong mảng. Hãy xem 2 cách đó như thế nào
<>
$personalInfo = array(
'name' => 'Ozawa',
'occupation'=> 'acctress',
'age' => 30,
'location' => 'Japan'
);
$type = array('censored','uncensored');
print_r($personalInfo);
var_dump($type);
?>
Chạy code này trên trình duyệt có thể tạo ra một thứ trông khá ngứa mắt và khó đọc. Hãy viết thêm đoạn code sau echo '
'; ở trên đầu mỗi dòng print_r hoặc var_dump để hiển thị mảng trong đẹp hơn.
Kết quả là đây:
Array
(
[0] => censored
[1] => uncensored
)
array(4)
["name"]=>
string(5) "Ozawa"
["occupation"]=>
string( "acctress"
["age"]=>
int(30)
["location"]=>
string(5) "Japan"
print_r(), chỉ đơn giản là in ra các cấu trúc và nội dung của mảng. Các keys sẽ nằm bên trái trong dấu ngoặc và các values sẽ nằm bên phải các keys tương ứng. Trong function thứ hai, var_dump(), bạn sẽ biết thêm chút thông tin về data của mình.
Hướng dẫn về các ngôn ngữ khác: https://vietpro.net.vn/hoc-ajax
Hãy chú ý một chút tới dòng đầu tiên "array(4)". Có nghĩa là "Đây là một mảng và nó chứa 4 phần tử". Ở dòng tiếp theo bạn thấy key đầu tiên là "string (11)". Nó nói "Đây là một chuỗi bao gồm 11 ký tự" (hãy nhớ rằng một khoảng trống cũng được coi là một ký tự). Dòng tiếp theo với key "age" và nó nói int(23), "Đây là một số nguyên với giá trị là 23".
Mảng đa chiều
Như đã đề cập ở trên một mảng đa chiều là một mảng có chứa ít nhất một mảng như một value. Tôi tạo một mảng cho các thành viên trong team
<>
$company = array(
'info' => array(
'name' => 'Awesome Web Company',
'location' => 'Savannah, GA',
'website' => ),
'staff' => array(
array('name'=>'Kermit the Frog','position' => 'CEO'),
array('name'=>'Hiro Nakamura','position' => 'Art Director'),
array('name'=>'Justin Luong','position' => 'Web Developer')
)
);
?>
Như bạn có thể thấy các mảng đa chiều có thể rất khó hiểu. Đây là một ví dụ đơn lẻ vì thông thường kiểu dữ liệu này sẽ được lưu trữ trong cơ sở dữ liệu và sau đó được đưa vào PHP. Tuy nhiên, do mục đích của việc học về mảng, chúng ta sẽ bắt đầu với dữ liệu trong PHP. Key đầu tiên trong mảng này được gọi là "info" và giá trị của nó là một mảng kết hợp có chứa thông tin công ty. Key thứ hai của mảng $company là 'staff' và giá trị của nó là một mảng số. Chúng ta hãy nhìn vào cấu trúc trước khi bắt đầu. Chạy print_r($company) sẽ như sau
Array
(
[info] => Array
(
[name] => Awesome Web Company
[location] => Savannah, GA
[website] =>
)
[staff] => Array
(
[0] => Array
(
[name] => Kermit the Frog
[position] => CEO
)
[1] => Array
(
[name] => Hiro Nakamura
[position] => Art Director
)
[2] => Array
(
[name] => Willy Wonka
[position] => Web Developer
)
)
)
Dưới đây là một ví dụ của việc sử dụng dữ liệu từ mảng đa chiều này:
Located in and online at [url==$company['info']['website']?>][/url].
Our CEO
Vòng lặp
Chúng ta đã đi vào mảng và một cách tự nhiên dẫn ta đến với vòng lặp. Trong đoạn code cuối cùng chúng ta đã liệt kê các nhân viên trong mảng $company. Sẽ thế nào nếu chúng ta muốn lặp qua từng nhân viên và hiển thị thông tin theo một cách giống nhau? Lúc này ta sẽ sử dụng vòng lặp foreach trông như sau:
<>
foreach($array as $key => $value)
...code ở đây
?>
Lưu ý rằng đã có ba biến được truyền vào function này. Biến đầu tiên là mảng chúng ta đang làm việc. Biến thứ hai và thứ ba do bạn định nghĩa. Chúng tham chiếu đến dữ liệu của mảng bên trong dấu ngoặc nhọn. Chúng ta sẽ xem xét điều này vào một lúc nào đó. Nhưng trước tiên, giống như lệnh echo có một cách viết tắt hay một cú pháp thay thế, foreach cũng sẽ có cách viết ngắn gọn giúp bạn kết hợp giữa PHP và HTML. Cách viết này giữ cho code càng trong sáng khi làm việc với HTML. Nó sẽ trông như thế này:
$value) : ?>
Some html and some php will go here
Bạn sẽ thấy định dạng này trong các câu lệnh if và vòng lặp while (ví dụ trong Wordpress). Trở lại với mảng thông tin của công ty, hãy xây dựng một trang web với các dữ liệu đó
<>
$company = array(
'info' => array(
'name' => 'Awesome Web Company',
'location' => 'avannah, GA',
'website' => 'staff' => array
array('name'=>'Kermit the Frog','position' => 'CEO'),
array('name'=>'Hiro Nakamura','position' => 'Art Director'),
array('name'=>'Willy Wonka','position' => 'Web Developer')
)
);
?>
Located in and online at [url==$company['info']['website']?>][/url].
Our Staff
- is our
Chia sẻ về các ngôn ngữ khác https://vietpro.net.vn/hoc-html-va-css
Bài học hôm nay kết thúc tại đây. Chúc các bạn học tập tốt.
|
|