Thứ Hai, 12 tháng 8, 2013

Bài 10: Mảng trong php


Mảng là gì?

Như chúng ta biết, biến dùng để lưu giá trị số hoặc chuỗi văn bản. Tuy nhiên một biến chỉ có thể lưu một giá trị. Mảng là một biến đặc biệt, nó giúp bạn có thể lưu trữ nhiều dữ liệu trên cùng một biến. Mỗi giá trị của biến mảng sẽ được xác định bằng một con số hoặc một tên riêng. Lúc đó ta có thể truy xuất dữ liệu một cách dễ dàng và hàng loạt.

Cách sử dụng một mảng rất đơn giản. Trước tiên bạn cần khai báo cho PHP biết đây là mảng:

$arr = Array();


Sau đó bạn có thể đăt giá trị cho các phần tử trong biến thông qua tên của biến trong mảng, thường thì mỗi phần tử trong mảng sẽ được đánh số thứ tự từ 0 cho đến vô cùng. Hoặc là mỗi phần tử sẽ mang một tên riêng, một chuỗi để xác định phần tử này trong mảng. Minh tạm gọi là key. Để set giá trị cho một phần tử người ta thường làm như sau:

$arr[key] = "giá trị";


với key là số hoặc chuỗi ký tự. Và để lấy dữ liệu trong mảng ra ta cung làm tương tự.

$a = $arr[key];


Xét một ví dụ nhỏ về tính tiện lợi của mảng, ta có 3 biến chứa tên 3 chiếc máy tính:

$computer1="XP";
$computer2="Vista";
$computer3="Linux";


Mọi chuyện trong có vẻ đơn giản, nhưng nếu bạn có 300 chiếc máy tính thì sao nhỉ? bạn sẽ cần 300 biến để lưu trữ chúng. Như vậy thì vừa tốn tài nguyên, lại mất nhiều thời gian. Giải pháp cho chúng ta ở đây là mảng.

$computer = Array("XP", "Vista", "Linux", "và nhiều nhiều giá trị nữa");


Mỗi giá trị sẽ cách nhau bởi dấu “,”. Lúc nảy mình có để cập đến 
Key, key ở đây có thể là số (0, 1, 2, 3, 4, … ) hoặc chuỗi. Hai loại mảng này không khác nhau về cách sử dụng, cũng như công dụng. Chúng chỉ khác nhau về tên và cách khai báo.

Mảng số (Numeric Array)

Loại mảng này sử dụng 
Key là những con số. Bắt đầu từ 0, chú ý bắt đầu từ con số 0 nhé. Cách khai báo giá trị thì trong ví dụ trên đã có sử dụng

$arr = Array("A", "B", "C");


Lấy giá trị từ mảng ra.

echo $arr[0]; // xuất chữ A
echo $arr[1]; // xuất ra chữ B
echo $arr[2]; // xuất ra chữ C

Mảng đa chiều (Multidimensional array)

Một mảng đa chiều sẽ chưa nhiều mảng con trong đó, các mảng con tạm gọi là sub-array, các sub-array này sẽ là 1 trong 2 loại mảng trên mà ta đã tìm hiểu. Một ví dụ về khai báo mảng đa chiều:

$arr = array
   (
   "hoctap"=>array
   (
   "Viết",
   "Thước",
   "Bút chì"
   ),
   "dongvat"=>array
   (
   "Chicken"
   ),
   "naunuong"=>array
   (
   "Nồi",
   "Niu",
   "Chảo"
   )
   );


Ví dụ hơi thú vị nhỉ , tiếp tục với bài học. Để truy xuất một phần tử trong đó thì làm thế nào? Ta sẽ làm theo cách cũ nhưng sẽ khác đi chút ít. Xem ví dụ sau:

echo $arr['hoctap'][2]; // xuất ra chuỗi Bút chì
echo $arr['dongvat][0]; // xuất ra chuỗi Chicken
echo $arr['naunuong'][1]; // xuất ra chuỗi Niu


Như vậy để truy xuất đến một phần tử trong một mảng đa chiều ta sẽ cần đến 2 
key.

Mảng liên tưởng (Associative array)

Mảng này sử dụng 
key là một chuỗi ký tự. Đôi khi dùng số bạn sẽ khó có thể xác định một phần tử nào đó mình muốn dùng, nhưng lại không nhớ nổi số thứ tự của nó trong khi số lượng phần tử lại quá lớn. Đây là lúc mảng số kém nổi trội hơn và khó sử dụng. Cách khai báo mảng liên tưởng.

$arr = Array("name" => "John", "age" => "25", "job" => "Webmaster");


Như ta thấy, mỗi phần tử đều được đặt tên và giá trị của chúng nằm ngay sau ký hiệu “=>”. Cách lấy dữ liệu từ mảng liên tưởng, tương tự mảng số, nhưng lần này mỗi phần tử đã có một tên riêng.

echo $arr['name'];  // xuất ra chuỗi John
echo $arr['age']; // xuất ra chuỗi 25
echo $arr['job']: // xuất ra chuỗi Webmaster


Lưu ý, thay vì khai báo giá trị cho mảng bằng hàm 
Array(). Bạn còn có thể set giá trị một cách trực tiếp thông qua key của phần tử. Ví dụ:

$age['John'] = 25;
$age['Smith'] = 18;
$computer[0] = "XP";
$computer[1] = "Vista";


Bên cạnh đó còn có một loại mảng cao cấp hơn mà ta phải nhắc đến, đó là mảng hỗn hợp hay mảng đa chiều. Mảng chứa những mảng khác.

Bạn có thể xem qua tài liệu php cơ bản hoặc đăng ký khóa học đào tạo lập trình tại công ty An Tâm Đức


Không có nhận xét nào:

Đăng nhận xét