Mảng
Mảng là một biến danh sách chứa nhiều phần tử có kiểu dữ liệu chữ hoặc số. Trong PHP, có thể tạo ra một mảng không đồng nhất về mặt kiểu dữ liệu.
Trong PHP có 3 loại mảng:
- Indexed arrays: Mảng với giá trị key mặc định là số nguyên.
- Associative arrays: Mảng với giá trị key được đặt tên và là một chuỗi
- Multidimensional arrays: Mảng mà các phần tử trong mảng là một mảng.
Tôi sẽ phân tích rõ hơn về các loại mảng ở phần dưới.
Indexed arrays
Cú pháp:
$variable = array($value_1, $value_2, $value_3, ...);
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java" );
Phân tích:
- knowledge: Tên của mảng.
$knowledge[0] = "PHP"
: Giá trị 0 ở đây chính là giá trị của key. Vì đây là mảng Indexed arrays nên giá trị key mặc định có mang giá trị lần lượt bắt đầu từ 0 ->count($knowledge)-1
(Xem thêm ở mục Hàmcount()
).
Associative arrays
Cú pháp: $variable = array( key_1=> $value, key_2=> $value, …);
Ví dụ:
$knowledge = array("PHP" => "knowledge_1", "Cpp" => "knowledge_2", "Java" => "knowledge_3" );
Phân tích:
$knowledge[PHP] = "knowledge_1"
: key ở đây là "PHP" và là một chuỗi.
Multidimensional arrays
Cú pháp:
$variable = array( $array_1, $array_2, $array_3, ... );
Ví dụ:
$knowledge= array(array("PHP",1,2), array("Cpp",3,4), array("Java",5,6));
Phân tích, ở trên đã khởi tạo một mảng 2 chiều:
$knowledge[0][1] = "PHP";
$knowledge[1][1] = 3;
$knowledge[2][2] = 6;
Các hàm xử lí và thao tác trên mảng
Thêm, xoá các phần tử trong mảng
Thêm phần tử vào trong một mảng
$author= array(); // khai báo một mảng có tên là author // Thêm các phần tử với mảng indexed arrays // với các key lần lượt ở dưới là 0, 1 và 2 $author[] = "TrucLinh"; $author[] = "DaiNguyen"; $author[] = "TieuNguyen"; // Thêm các phần tử với mảng associative arrays // với các key lần lượt ở dưới là "author_1", "author_2" và "author_3" $author["author_1"] = "TrucLinh"; $author["author_2"] = "DaiNguyen"; $author["author_3"] = "TieuNguyen";
Xóa phần tử vào trong một mảng
Để xóa một phần tử trong mảng, sử dụng phương thức unset()
$knowledge = array("PHP" => "knowledge_1", "Cpp" => "knowledge_2", "Java" => "knowledge_3" ); unset($knowledge["Java"]); //Kết quả sau khi unset(): [PHP] => "knowledge_1", [Cpp] => "knowledge_2"
Hàm count()
Cú pháp: count($array)
Hàm count()
được dùng để trả về độ dài hay số phần tử trong mảng.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java" ); echo count($knowledge); //Kết quả: 3
Duyệt mảng
Để có thể lặp qua các giá trị phần tử trong mảng Indexed arrays với mục đích nào đó như: in ra màn hình, sử dụng để tính toán, thay đổi,... Có thể sử dụng vòng lặp for như sau:
$knowledge = array("PHP", "Cpp", "Java" ); $arrlenght = count($knowledge); for($i = 0; $i < $arrlength; $i++){ echo $knowledge[$i]; echo "<br>"; } /* Kết quả: PHP Cpp Java */
Tương tự như ở mảng Associative arrays, có thể sử dụng vòng lặp foreach
như sau:
$ageknowledge = array("PHP" => "30", "Cpp" => "25", "Java" => "20" ); foreach($ageknowledgeas $i => $i_value){ echo "Name: " . $i . ", age: " . $i_value; echo "<br>"; } /* Kết quả: Name: PHP, age: 30 Name: Cpp, age: 25 Name: Java, age: 20 */
Hàm in_array()
Cú pháp: in_array( $value, $array)
Là phương thức tìm một giá trị có trong mảng.
Trong đó:
$value
: Là giá trị cần tìm.$array
: Là mảng bị tìm kiếm.
Kết quả trả về của phương thức sẽ là TRUE
nếu giá trị đó tồn tại trong mảng. Và ngược lại sẽ là FALSE
nếu giá trị đó không tồn tại trong mảng.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java" ); var_dump(in_array("PHP", $knowledge)); // TRUE
Hàm array_change_key_case()
Cú pháp: array_change_key_case( $array, $case)
Trả về một mảng, trong đó chuyển tất cả các key trong mảng array sang chữ hoa nếu $case=CASE_UPPER ($case=1)
và sang chữ thường nếu $case=CASE_LOWER ($case=0)
.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java" ); print_r(array_change_key_case($knowledge,CASE_UPPER)); //Kết quả: [0] => PHP, [1] => Cpp, [3] => Java
Hàm array_keys()
Cú pháp: array_combine( $array_key, $array_values)
Trộn 2 mảng $array_keys
và $array_values
thành một mảng với:
$array_keys
: Là danh sách keys,$array_value
: Là danh sách values tương ứng với key.
Chú ý: Điều kiện là 2 mảng này phải bằng nhau.
Ví dụ:
$array_keys = array("PHP", "Cpp", "Java"); $array_values = array("knowledge_1", "knowledge_2", "knowledge_3"); print_r(array_combine($array_keys, $array_values)); //Kết quả: [PHP] => knowledge_1, [Cpp] => knowledge_2, [Java] => knowledge_3
Hàm array_push()
Cú pháp: array_push( $array, $value_1, $value_2, $value_3, …)
Thêm vào cuối mảng $array
một hoặc nhiều phần tử với các giá trị tương ứng $value_1, $value_2, $value_3, …
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java"); array_push($knowledge, "DatTruong", "RyanLe"); print_r($knowledge); //Kết quả: [0] => PHP, [1] => Cpp, [2] => Java, [3] => DatTruong, [4] => RyanLe;
Hàm array_pop()
Cú pháp: array_pop( $array)
Xoá phần tử ở cuối mảng và trả về phần tử mới bị xóa. Nếu mảng rỗng hoặc không phải mảng, trả về NULL
.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java"); echo array_pop($knowledge); //Kết quả: Java
Hàm array_unshift()
Cú pháp: array_unshift( $array, $value_1, $value_2, $value_3, …)
Thêm các giá trị $value_1, $value_2, $value_3, …
vào đầu mảng $array
.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java"); array_unshift($knowledge, "DatTruong", "RyanLe"); print_r($knowledge); //Kết quả: [0] => DatTruong, [1] => RyanLe, [2] => PHP, [3] => Cpp, [4] => Java
Hàm array_shift()
Cú pháp: array_shift( $array)
Xóa phần tử đầu tiên ra khỏi mảng và trả về phần tử vừa xóa đó.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java"); $knowledge_1 = array_shift($knowledge); print_r($knowledge); /* Kết quả biến $knowledge: [0] => Cpp, [1] => Java Kết quả biến $knowledge_1: PHP */
Hàm array_count_values()
Cú pháp: array_count_values($array)
Đếm số lần xuất hiện của các phần tử giống nhau trong mảng $array
và trả về một mảng.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java", "Cpp", "PHP", "PHP", "DatTruong", "RyanLe"); print_r(array_count_values($knowledge)); //Kết quả là: [PHP] => 3, [Cpp] => 2, [Java] => 1; [DatTruong] => 1, [RyanLe] => 1
Hàm is_array()
Cú pháp: is_array( $variable)
Kiểm tra một biến có phải kiểu mảng hay không? Kết quả trả về TRUE
nếu phải và FALSE
nếu không phải.
Ví dụ:
$knowledge = array(); var_dump($knowledge); // Kết quả trả về TRUE $author = ""; var_dump($author); // Kết quả trả về FALSE
Hàm array_key_exists()
Cú pháp: array_key_exists( $key, $array)
Kiểm tra key $key
có tồn tại trong mảng $array
không? Trả về TRUE
nếu có và FALSE
nếu không có.
Ví dụ:
$knowledge = array("PHP"=>"knowledge_1", "Cpp"=>"knowledge_2", "Java"=>"knowledge_3" ); var_dump(array_key_exists("PHP", $knowledge)); // Kết quả trả về TRUE var_dump(array_key_exists("RyanLe", $knowledge)); // Kết quả trả về FALSE
Hàm array_unique()
Cú pháp: array_unique($array)
Loại bỏ các phần từ có giá trị giống nhau trong mảng $array
.
Ví dụ:
$knowledge = array("PHP", "Cpp", "Java", "Cpp", "PHP", "PHP", "DatTruong", "RyanLe"); $result = array_unique($knowledge); var_dump($result); //Kết quả: [0] => PHP, [1] => Cpp, [2] => Java; [3] => DatTruong, [4] => RyanLe
Hàm array_values()
Cú pháp: array_values($array)
Chuyển mảng $array
sang dạng mảng Indexed arrays.
Ví dụ:
$knowledge = array("PHP" => "knowledge_1", "Cpp" => "knowledge_2", "Java" => "knowledge_3" ); var_dump(array_values($knowledge)); //Kêt quả: [0] => knowledge_1, [1] => knowledge_2, [2] => knowledge_3
Tổng kết
Bài viết này giới thiệu về kiểu dữ liệu mảng trong PHP cũng như các ví dụ về các hàm xử lý. Hiểu rõ về mảng và sự sắp xếp đồng bộ các phần tử sẽ hữu ích trong các ứng dụng lớn.