STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Kiểu Dữ Liệu Mảng Trong PHP

    Tìm hiểu về kiểu dữ liệu và các phương thức về mảng trong PHP.
    20/03/2017
    06/09/2020
    6 phút đọc
    Kiểu Dữ Liệu Mảng Trong PHP

    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àm count()).

    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$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.

    0
    PHP
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích.. Tìm hiểu thêm.

    Đề xuất

    Biến Và Kiểu Dữ Liệu Trong PHP
    Tìm hiểu về biến và các kiểu dữ liệu trong PHP.
    20/02/2017
    Biến và Kiểu Dữ Liệu trong Lua
    Giới thiệu biến, kiểu dữ liệu và cách khai báo biến và kiểu dữ liệu ...
    24/09/2014

    Khám phá

    Biến trong PHP
    Hướng dẫn khai báo biến, sử dụng và kiểm tra kiểu dữ liệu của biến trong ...
    28/08/2015
    Biến và Kiểu Dữ Liệu Cơ Bản trong Java
    Giới thiệu khái niệm, phạm vi hoạt động của biến và các kiểu dữ liệu ...
    11/05/2015
    Biến và Kiểu Dữ Liệu Của Biến trong C++
    Biến, các tính chất của biến và các kiểu dữ liệu trong C/C++.
    15/07/2017
    Sử Dụng Mảng Trong C++
    Tìm hiểu những kiến thức cơ bản về mảng dữ liệu và cách sử dụng mảng ...
    29/07/2015
    Biến và Kiểu Dữ Liệu
    Tìm hiểu về biến và kiểu dữ liệu trong C++.
    16/04/2015
    Biến và Kiểu Dữ Liệu trong Python
    Sơ lược qua về biến và kiểu dữ liệu của biến trong Python
    18/03/2015
    Phương Thức Truyền và Nhận Dữ Liệu POST, GET Trong PHP
    Cơ chế truyền dữ liệu với phương thức POST và GET trong PHP.
    07/10/2015
    Toán Tử trong PHP
    Tìm hiểu về các toán tử trong ngôn ngữ lập trình PHP.
    03/10/2016
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020