PHP: Mảng (Array) một chiều

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Video hướng dẫn:

Mảng trong PHP là một tập hợp bao gồm nhiều phần tử có cùng tên nhưng khác nhau về chỉ số (các chỉ số này là tùy biến). Với ngôn ngữ lập trình C, các phần tử của mảng có cùng kiểu dữ liệu, nhưng với PHP thì mềm dẻo hơn, các phần tử của mảng không nhất thiết phải cùng kiểu.

Khai báo mảng một chiều

Ta có thể khai báo mảng bằng cách gán tên mảng với dấu đóng mở ngoặc vuông không có chỉ số. Chúng ta hãy xét ví dụ sau:

$countries[] = "cr";

$countries[] = "de";

$countries[] = "us";

Ví dụ trên tạo ra một mảng gồm ba phần tử có chỉ số là 0, 1 và 2.

Việc đó cũng tương tự như ta gán:

$countries[0] = "cr";

$countries[1] = "de";

$countries[2] = "us";

Ngoài ra các chỉ số của mảng không nhất thiết phải tăng dần mà có thể được khai báo như sau:

$countries[50] = "cr";

$countries[20] = "de";

$countries[10] = "us";

echo"$countries[20]"; //sẽ in ra: de

Khi đó để thêm một phần tử mới vào mảng chúng ta có thể viết:

$countries[] = "uk"; //chỉ số sẽ là 51

Một phần tử mới được thêm vào với chỉ số là chỉ số lớn nhất của mảng cộng thêm một. Ngoài ra cũng có thể khai báo mảng một chiều bằng câu lệnh array như sau:

$countries = array (“cr”, “de”, “us”);

echo“$countries[2]”; //sẽ in ra: us

Để chỉ số không bắt đầu từ 0 ta có thể khai báo lại như sau:

$countries = array (1 => “cr”, “de”, “us”);

echo"$countries[2]"; //sẽ in ra: de

Toán tử => có thể được sử dụng trước bất kỳ một phần tử nào trong mảng. Ví dụ:

$countries = array (“cr”, 7 => “de”, “us”);

, thì khi đó phần tử có giá trị "cr" có chỉ số là 0 còn phần tử có giá trị "de" và "us" lần lượt là 7 và 8.

Khác với ngôn ngữ lập trình C, chỉ số của mảng một chiều không chỉ là các số nguyên mà còn là xâu ký tự. Ta có thể khai báo như sau:

$countries[“ca”] = “Canada”;

$countries[“cr”] = “Costa Rica”;

$countries[“de”] = “Germany”;

$countries[“uk”] = “United Kingdom”;

$countries[“us”] = “United States”;

echo (“$countries[“ca”]”); // print Canada

Nếu dùng array thì sẽ là:

$countries = array(“ca” => “Canada”,

                   “cr” => “Costa Rica”,

                   “de” => ‘Germany”,

                   “uk” => “United Kingdom”,

                   “us” => “United States”);

Làm việc với các phần tử của mảng

Vòng lặp foreach được coi là thích hợp để có thể tương tác với mảng. Vòng lặp foreach có thể thực hiện với hai cách thức như sau:

Cách thức 1:

$arr=array(2,4,3,1,5);

foreach($arr as $value){

  echo"<br>$value";

}

Ví dụ trên sẽ in ra từng giá trị của các phần tử mảng.

Cách thức 2:

$arr=array(2,4,3,1,5);

foreach($arr as $key=>$value){

  echo"<br>$key=>$value";

}

Ví dụ trên sẽ in ra từng chỉ số và giá trị của từng phần tử mảng.

Ngoài ra, có thể sử dụng vòng lặp for xét từng phần tử của mảng.

$countries = array("cr", "de", "us");

$num_elements = count($countries);

for($i=0; $i<$num_elements; $i++) {

  echo"$countries[$i] <BR>\n";

}

Ví dụ trên sẽ đúng khi chỉ số của các phần tử tăng dần đều. Nếu chỉ số các phần tử không theo một thứ tự nào cả ta có thể sử dụng hàm list() và each().

reset($countries);

while(list($key, $value)=each($countries)) {

  echo"Chỉ số $key, giá trị $value";

}

Để di chuyển con trỏ tới phần tử tiếp theo hoặc trước đó ta cũng có thể dùng hàm next() - hàm next() trả về là 1 (true) nếu phần tử tiếp theo không phải là phần tử cuối cùng, ngược lại là 0 (false) và prev() - hàm prev() cho giá trị trả về là 1 (true) nếu phần tử tiếp theo không phải là phần tử đầu tiên, ngược lại là 0 (false). Hàm key () sẽ cho biết chỉ số và hàm current() sẽ cho biết giá trị của phần tử đó.

$arr=array(3, 4, 5, 6, 7);

do {

  $k=key($arr);

  $val=current($arr);

  echo"Phần tử $k = $val";

}while (next($arr));

» Tiếp: Mảng hai chiều
« Trước: break và continue
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!