Chúng ta sắp bắt tay vào một khía cạnh rất quan trọng của PHP : Array, các bạn sẽ thấy rằng bọn array giống như những biến phức hợp mà mình có thể tưởng tượng như một cái bảng (hay ma trận) chứa giá trị của biến trong đó !Chúng ta có thể làm những thứ rất đồ sộ với array, và cách sử dụng array không phải lúc nào cũng dễ nuốt ! Trên thực tế, có thể một chuyên gia nào đó về PHP sẽ ngạc nhiên vô cùng khi thấy mình cùng nhau nói về array trong phần Cơ bản của PHP ! Tôi hướng dẫn các bạn phần này sớm như vậy cũng có lý do : một khi đã hiểu về Array, các bạn sẽ không còn gặp khó khăn gì khi mình học về Cơ Sở Dữ Liệu (phần II của bài viết) !Vì sự phức tạp của nó, tôi đã quyết định cắt phần này làm 2, tại đây chúng ta sẽ nói về cơ bản, phần « lợi hại » hơn chúng ta sẽ gặp lại trong phần III của bài viết ! Trong chương này:

Bạn đang xem: Array là gì

*

*

*
*

Một array là một biến, nhưng là một biến đặc biệt !Cho đến thời điểm này chắc các bạn cũng đã quen mặt với biến rồi ! Ví dụ một biến :Code : PHP
Biến $name ở đây có thể được cụ thể hóa dưới dạng như sau:

Tên biến Giá trị
$nameNicole

Chúng ta sẽ thấy rằng thực ra chúng ta có thể lưu cùng lúc nhiều giá trị cho một biến, chứ không chỉ lưu mỗi một giá trị Nicole duy nhất thôi đâu !Rất dễ tưởng tượng, ví dụ hãy xem cái bảng sau đây (là những gì mà biến $name chứa)

Số thứ tự Tên
0Nicole
1Aladin
2Tintin
3Mickey

$name là một Array , cái mà tôi gọi là một biến kiểu bảng( hay mảng) ! Nó không chỉ chứa được 1 mà nhiều giá trị, mình có thể cho nó chứa bao nhiêu giá trị cũng được !Trong một mảng, giá trị được sắp xếp vào các « ô », mình tưởng tượng rằng mỗi ô được đánh một số (tạm gọi là chỉ số của ô), chẳng hạn ô chứa Nicole đượcđánh số 0, ô chứa Aladin được đánh số 1,… !
Chú ý, mảng đánh số này luôn luôn bắt đầu bằng số 0 chứ không phải 1 ! Hãy thận trọng về điều này nếu không bạn có nguy cơ bị lỗi đấy !
Làm sao để lấy giá trị trong một ô nào đó của mảng ?Chẳng hạn, mình muốn in ra tên Tintin thì phải làm sao ?
Để lấy một giá trị trong một ô nào đó của mảng, mình phải biết đó là ô số mấy (không phải thứ mấy), cấu trúc lấy giá trị trong một ô nào đó như sau: Ở đây mình muốn in ra giá trị nằm trong ô số 3 (vì Tintin nằm ở ô số 3 mà! Chú ý, tôi nói ô số 3 chứ không phải ô thứ 3 nhé!)Code : PHP
Nếu bạn không đặt số 3 trong ngoặc vuông thì nó không chạy mà sẽ báo lỗi « Array … gì đó » ! Cho nên khi làm việc với mảng, bắt buộc bạn phải chỉ ra ô số mấy và đặt số trong dấu ngoặc vuông !
Làm sao tạo một mảng ?

Xem thêm: Wan Là Gì – Mạng Diện Rộng

Ví dụ tạo một mảng :Code : PHP
// Hàm array cho phép tạo một mảng$name = array (“Nicole”, “Aladin”, “Tintin”, “Mickey”);?>
Chú ý vào thứ tự nhé! Thứ tự rất quan trọng trong việc sử dụng mảng, chẳng hạn trong ví dụ này, mình đã tạo ra một bảng gồm 4 ô, tên Nicole sẽ được tự động đặt vào ô số 0 của mảng, Aladin ô số 1,.., Mickey ô số 3!Vậy là các bạn đã xem hết ruột gan của tôi rồi đấy! Bạn đã biết làm sao tạo một mảng, làm sao lấy giá trị của mảng và in ra!Bây giờ tôi đề nghị các bạn viết một đoạn script để tóm tắt lại! Đoạn script phải cho phép in ra tất cả giá trị nằm trong mảng $name!Đầu tiên hãy tạo một biến kiểu mảng tên là $name, sau đó dùng vòng lặp (while hoặc for) để in tất cả giá trị trong mảng này ra! Ở đây tôi dùng for là thích hợp hơn cả! Code : PHP
// Tạo một mảng $name$name = array(« Nicole », »Aladin », « Tintin », « Mickey ») ;// Rồi dùng một vòng lặp để in ra hết :for ($number=0 ; $number{ echo $name ; // in ra $name, $name,…. echo “”; // để xuống dòng sau mỗi lần in}?>

Mảng kiểu kết hợp

Nếu bây giờ tôi muốn lưu địa chỉ của ai đó, chẳng hạn :Tên : Trần Trùng TrụcSố nhà :123Đường : Trần Hưng ĐạoQuận : 5Thành phố : Hồ chí MinhNếu mình vẫn dùng mảng theo kiểu bảng đánh số 0,1,2… như trên thì làm sao để biết 0 là tên, 1 là số nhà, 2 là đường,… ???Như vậy, thay vì ghi $diachi = « Trần Trùng Trục », mình làm cách nào đó để ghi $diachi = « Trần Trùng Trục » chẳng hạn, như vậy sẽ dễ nhận biết hơn nhiều nhỉ ?Để làm như vậy, mình sẽ khai báo một mảng gọi là mảng kết hợp (associative table), dịch không sát lắm, nhưng tạm gọi vậy đi nhá ! Chúng ta vẫn dùng hàm array như cũ, nhưng bên trong có chút khác khác :Code : PHP
// tạo mảng tên là $diachi$diachi = array ( “name” => “Trần trùng trục”, “number” => “123”, “duong” => “Tran hung dao”, “quan” => “5”, “thanhpho” => “ho chi minh”);?>
Chú ý : đây chỉ là một dòng lệnh khai báo (kết thúc bởi một dấu chấm phẩy duy nhất), mình có thể viết trên 1 dòng duy nhất, nhưng không có ai cấm mình viết thành nhiều dòng như trên, như vậy dễ nhìn hơn !Để ý rằng ở đây chúng ta đã dùng một mũi tên,(=>) ý nói “được kết hợp với”, chẳng hạn viết “thanhpho”=> “ho chi minh” ý nói “thanhpho” thì được kết hợp với “ho chi minh” !
Gần như giống với cách làm hồi nãy, nhưng lần này mình đặt “chữ” vào bên trong dấu ngoặc đơn thay vì đặt “số” vào trong đó như đã làm ! Và chú ý rằng « chữ » ở đây phải được đặt trong dấu nháy ! (“”) ! Cái này là bắt buộc ! Chẳng hạn $diachi để trích tên thành phố ra !Code : PHP
// Tạo mảng kết hợp$diachi = array ( “name” => “Trần trùng trục”, “number” => “123”, “duong” => “Tran hung dao”, “quan” => “5”, “thanhpho” => “ho chi minh”);// Rồi nếu mình muốn in ra tên thành phố, mình viết :echo $diachi ;?>

Xem thêm: Cá Tính Là Gì – Trở Nên Cá Tính

Mảng kiểu kết hợp này rất quan trọng trong phần II khi mình nói về Cơ Sở Dữ Liệu, vì vậy bạn phải nhớ kĩ nhé !Hết chương 9 ! Hết Phần I !

Chuyên mục: Hỏi Đáp