Khái niệm mảng trong lập trình PHP và các hàm xử lý mảng phần tử căn bản

Thảo luận trong 'Ngôn ngữ lập trình web PHP' bắt đầu bởi admin, 29/9/14.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    3,893
    Đã được thích:
    779
    Điểm thành tích:
    113
    Giới tính:
    Nam
    1.Khái Niệm
    • Mảng trong lập trình còn gọi là array.
    • Mảng là một biến là biến danh sách các phần tử.
    • Một biến có thể lưu trữ được nhiều giá trị, 1 mảng lưu trữ được nhiều biến đó.
    • Đối với java, c++, c# khi ta khai báo mảng, sử lý giá trị trong mảng ta hay convert giá trị này đúng với kiểu dữ liệu bạn cần để sử lý. Còn trong PHP các giá trị này có thể là 1 các phần tử không đồng nhất dữ liệu cũng được và ta sử lý hoàn toàn bình thường.

    mang-trong-lap-trinh-php.jpg

    2.Khởi tạo khai báo giá trị mảng phần tử trong php
    • Để tạo mảng và khai báo mảng ta sử dụng cú pháp như sau:
    PHP:
    $ten_bien = array("gia_tri_1","gia_tri_2","gia_tri_3",...,"gia_tri_n");

    • Các giá trị cách nhau bằng dấu ',' và các giá trị của mảng có thể là kiểu string, kiểu số, kiểu mảng tùy thuộc vào dữ liệu của bạn.
    VD: Code lập trình php khai báo 1 mảng sau:
    PHP:
    <?php
      $thanhvienitseovn
    = array(
                         
    'Phạm Công Sơn',
                         
    'itseovn@gmail.com',
                         
    'xx/xx/1988',
                         
    'Lập trình viên',
                         
    'itseovn.com'
                       
    );
    ?>
    Ý nghĩa code : đó là danh sách thông tin của 1 thành viên nào đó.

    3. Add/Thêm giá trị mới hoặc giá trị vào mảng.

    • Khai báo như sau:
    PHP:
       $ten_mang[ ] = 'gia_tri';
       
    $ten_mang['key'] = 'gia_tri';
    Ví dụ:
    PHP:
    <?php
        $thanhvienitseovn
    = array(
                         
    'Phạm Công Sơn',
                         
    'itseovn@gmail.com',
                         
    'xx/xx/1988',
                         
    'Lập trình viên',
                         
    'itseovn.com'
                       
    );
        
    //add thêm thông tin thành viên này.
        
    $thanhvienitseovn['gioitinh'] = 'Nam';
        
    $thanhvienitseovn['DiaChiHienTai'] = 'TP.Hồ Chí Minh';
    ?>

    • Để xem mảng giá trị như thế nào ta sử dụng các lệnh print_r hoặc var_dump, lệnh print_r được dùng nhiều vì xử lý nhanh hơn.
    VD: về một mảng giá trị như sau:
    PHP:
    <?php
    $thanhvienitseovn
    = array(
                         
    'Phạm Công Sơn',
                         
    'itseovn@gmail.com',
                         
    'xx/xx/1988',
                         
    'Lập trình viên',
                         
    'itseovn.com',
                         
    'mảng dữ liệu trong lập trình php'
                       
    );
    echo 
    "<pre>";//thẻ giứ nguyên định dạng code khi hiển thị
    print_r($thanhvienitseovn);
    echo 
    "</pre>";
    ?>
    Kết quả được in ra như sau:
    Mã:
     
    Array([0]=>'Phạm Công Sơn',
    [1]=>'itseovn@gmail.com',
    [2]=>'xx/xx/1988',
    [3]=>'Lập trình viên',
    [4]=>'itseovn.com',
    [5]=>'mảng dữ liệu trong lập trình php'
    )
    
    Ai chưa biết về thẻ pre thì đọc bài sau : thẻ pre là gì?


    4. Để Tác 1 chuỗi thành 1 mảng ta làm như sau:

    • Sử dụng hàm : explode
    VD: ta có chuỗi : "diễn đàn seo việt nam".
    Mã:
    $html='diễn đàn seo việt nam';
    $array= explode(" ", $html);
    

    Ta sẽ có mảng như sau:
    Array(
    [0]=>'diễn',
    [1]=>'đàn',
    [2]=>'seo',
    [3]=>'việt',
    [4]=>'nam'
    )


    Để liệt kê số phần tư theo dạng mảng ta dùng hàm:

    Mã:
    $html='diễn đàn seo việt nam';
    $array=var_dump(explode(' ', $html));
    

    Ta có kết quả như sau:
    array(5) { [0]=> string(6) "diễn" [1]=> string(5) "đàn" [2]=> string(3) "seo" [3]=> string(6) "việt" [4]=> string(3) "nam" }

    5.Đếm tổng số phần tử có trong mảng.

    • Đém số phần tử trong mảng ta dùng hàm count.
    VD:
    PHP:
    <?php
    $thanhvienitseovn
    = array(
                         
    'Phạm Công Sơn',
                         
    'itseovn@gmail.com',
                         
    'xx/xx/1988',
                         
    'Lập trình viên',
                         
    'itseovn.com',
                         
    'mảng dữ liệu trong lập trình php'
                       
    );
    echo 
    count($thanhvienitseovn);  // kết quả in ra là 6 phần tử.
    ?>
    6.Các loại mảng có trong PHP

    • Trong PHP có 2 loại mảng là : Mảng tuần tự và mảng bất tuần tự.
    Mảng tuần tự:
    • Mảng tuần tự là mảng có chỉ số index tăng hoặc giảm theo quy luật nào đó nhất định, vị trí của mảng được bắt đầu bằng số 0.
    VD mảng tuần tự:
    PHP:
    $thanhvienitseovn= array(
                         
    'Phạm Công Sơn',
                         
    'itseovn@gmail.com',
                         
    'xx/xx/1988',
                         
    'Lập trình viên',
                         
    'itseovn.com',
                         
    'mảng dữ liệu trong lập trình php'
                       
    );
    $countarr count($thanhvienitseovn);
    for(
    $i 0$i $countarr $i++){
        echo (
    $thanhvienitseovn[$i].'<br/>'); 
    }

    • Cấu trúc của mảng được in ra tương ứng với các giá trị.
    Mã:
     array([0]=>'Phạm Công Sơn', // giá trị tại vị trí số 0 trong mảng là họ tên 'Phạm Công Sơn'
    [1]=>'itseovn@gmail.com', // giá trị tại vị trí số 1 trong mảng là Email 'itseovn@gmail.com'
    [2]=>'xx/xx/1988',
    [3]='Lập trình viên',
    [4]=>'itseovn.com',
    [5]=>'mảng dữ liệu trong lập trình php')
    

    • Các giá trị của mảng được tăng dần từ 0, 1, 2, 3, 4, 5
    Mảng bất tuần tự
    • Là mảng sử dụng các giá trị, từ khóa để làm số duyệt mảng.
    VD mảng bất tuần tự:
    PHP:
    $thanhvienitseovn= array(
                        
    "HoTen"=> 'Phạm Công Sơn',
                        
    "Email"=> 'itseovn@gmail.com',
                        
    "NgaySinh"'xx/xx/1988',
                        
    "NgheNghiep"=>'Lập trình viên',
                        
    "Web:"=>'itseovn.com',
                        
    "SoThich"=>'mảng dữ liệu trong lập trình php'
                       
    );
    echo 
    $info['HoTen']; //giá trị trả về : Phạm Công Sơn
    echo $info['Email']; //giá trị trả về : itseovn@gmail.com
    7. Cách duyệt mảng phần tử

    • Ta có các cách sau :
    PHP:
    foreach($mang as $giatri){
         echo 
    $giatri
    }

    • Hoặc cách.
    PHP:
    foreach($mang as $i=>$j){
      echo 
    "$i : $j <br />";
    }

    • Hoăc là.
    PHP:
    $countarr count($mang);
    for(
    $i 0$i $countarr $i++){
        echo (
    $mang[$i].'<br/>'); 
    }
    8. Các hàm dùng để xử lý mảng

    • print_r ($array)
      • Dùng để xem cấu trúc của mảng phần tử giống các VD ở trên.
    • count ($array)
      • Hàm trả về giá trị kiểu số nguyên là số phần tử của mảng giống VD trên.
    • array_values ($array)
      • Hàm trả về một mảng liên tục có các phần tử có giá trị là giá trị lấy từ các phần tử của mảng $array
    • array_keys ($array)
      • Trả về một mảng liên tục có các phần tử có giá trị là khóa lấy từ các phần tử của mảng $array.
    • array_pop ($array)
      • Loại bỏ phần tử cuối cùng của mảng. Hàm trả về phần tử cuối cùng đã được loại bỏ.
    • array_push ($array, $val1, $val2, ... , $valn)
      • Thêm một hoặc nhiều phần tử vào cuối mảng $array. Hàm trả về kiểu số nguyên là số lượng phần tử của mảng $array mới
    • array_shift ($array)
      • Loại bỏ phần tử đầu tiên của mảng. Hàm trả về phần tử đầu tiên đã được loại bỏ.
    • array_unshift ($array, $val1, $val2, ... , $valn)
      • Thêm một hoặc nhiều phần tử vào đầu mảng $array. Hàm trả về kiểu số nguyên là số lượng phần tử của mảng $array mới
    • array_flip ($array)
      • Trả về một mảng có khóa và giá trị được hoán đổi cho nhau so với mảng $array (giá trị thành khóa và khóa thành giá trị)
    • sort ($array)
      • Sắp xếp mảng $array theo giá trị tăng dần
    • array_reverse ($array)
      • Đảo ngược vị trí các phần tử của mảng
    • array_merge ($array1, $array2, …, $arrayn)
      • Nhập 2 hay nhiều mảng thành một mảng duy nhất và trả về mảng mới
    • array_rand ($array, $number)
      • Lấy ngâu nhiên $number phần tử từ mảng $array và đưa vào màng mới (lấy giá trị khóa)
    • array_search ($value,$array)
      • Tìm phần tử mang giá trị $value trong mảng $array. Trả về khóa của phần tử tìm được.
    • array_slice ($array, $begin. $finish)
      • Trích lấy 1 đoạn phần tử của mảng $array từ vị trí $begin đến vị trí $finish. Phần tư đầu tiên (chỉ số 0), phần tử cuối cùng (chỉ số -1 hay count($array) - 1)
    • array_unique ($array)
      • Loại bỏ những phần tử trùng nhau trong mảng và trả về mảng mới
    • implode ($str, $array)
      • Chuyển các giá trị của mảng $array thành một chuỗi bao gồm các phần tử cách nhau bởi ký tự $str
    • explode ($delimiter, $str)
      • Chuyển một chuỗi thành một mảng. Tách chuỗi dựa vào $delimiter, mỗi đoàn tách ra sẽ thành một phần tử của mảng mới
    • serialize ($value)
      • Chuyển chuỗi/mảng/đối tượng $value thành một chuỗi đặc biệt để lưu vào cơ sở dữ liệu
    • unserialize ($value)
      • Chuyển chuỗi đặc biệt được tạo từ serialize($value) về trạng thái ban đầu
    • array_key_exists ($key, $array)
      • Kiểm tra khóa $key có tồn tại trong mảng $array hay không? Nếu có trả về giá trị true.
    • in_array ($value, $array)
      • Kiểm tra giá trị $value có tồn tại trong mảng $array hay không? Nếu có trả về giá trị true.
    • array_diff ($array1, $array2)
      • Trả về một mảng bao gồm các phần tử có giá trị tồn tại trong mảng $array1 nhưng không tồn tại trong mảng $array2
    • array_diff_assoc ($array1, $array2)
      • Trả về một mảng bao gồm các phần tử có khóa tồn tại trong mảng $array1 nhưng không tồn tại trong mảng $array2
    • array_intersect ($array1, $array2)
      • Trả về một mảng bao gồm các phần tử giống nhau về giá trị giữa 2 mảng $array1 và $array2
    • array_intersect_assoc ($array1, $array2)
      • Trả về một mảng bao gồm các phần tử giống nhau về khóa và giá trị giữa 2 mảng $array1 và $array2
    • array_combine ($keys, $values)
      • Tạo một mảng mới có khóa được lấy từ mảng $keys và giá trị được lấy từ mảng $values theo tuần tự (Yêu cầu số phần tử ở 2 mảng phải bằng nhau).
    Tổng hợp internet và có chỉnh sửa, cảm ơn các bạn đã đọc bài viết tại ITSEOVN
     
    Cảm ơn đã xem bài:

    Khái niệm mảng trong lập trình PHP và các hàm xử lý mảng phần tử căn bản

    Chỉnh sửa cuối: 9/5/17
  2. DienDanRaoVat

    DienDanRaoVat Thành Viên Thường

    Tham gia ngày:
    14/2/14
    Bài viết:
    137
    Đã được thích:
    2
    Điểm thành tích:
    18
    Bài viết khá chi tiết, cảm ơn bác
     
  3. yeuseo

    yeuseo

    Vip Member

    Tham gia ngày:
    15/8/14
    Bài viết:
    99
    Đã được thích:
    1
    Điểm thành tích:
    6
    Bài viết rất chi tiết và bổ ích
     
  4. tinhyeuhoala

    tinhyeuhoala Thành Viên Mới

    Tham gia ngày:
    8/10/14
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    0
    Bài viết rất bổ ích, cảm ơn ad nhiều
     


Like và Share ủng hộ ITSEOVN