Tự học lập trình PHP

  • Tìm hiểu về Mảng (Array) trong PHP từ A đến Z

    Array là một cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một giá trị duy nhất. Ví dụ: nếu bạn muốn lưu trữ 100 số thì thay vì xác định 100 biến dễ dàng để xác định một mảng có độ dài 100. Tìm hiểu về Mảng (Array) trong PHP được sử dụng để tạo một mảng.

    Trong PHP, có ba loại mảng:

    • Mảng được lập chỉ mục - Mảng có chỉ mục số
    • Mảng kết hợp - Mảng với các phím được đặt tên
    • Mảng đa chiều - Mảng chứa một hoặc nhiều mảng

    1. Mảng được lập chỉ mục - Mảng có chỉ mục số

    Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng số. Theo chỉ mục mảng mặc định bắt đầu từ số không.

    Thí dụ

    Sau đây là ví dụ cho thấy cách tạo và truy cập mảng số.

    Ở đây chúng ta đã sử dụng hàm array () để tạo mảng. Hàm này được giải thích trong tham chiếu hàm.

     

      

         

            /* First method to create array. */

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

            foreach( $numbers as $value ) {

               echo "Value is $value
    ";

            }

            /* Second method to create array. */

            $numbers[0] = "one";

            $numbers[1] = "two";

            $numbers[2] = "three";

            $numbers[3] = "four";

            $numbers[4] = "five";

            foreach( $numbers as $value ) {

               echo "Value is $value
    ";

            }

         ?>

      

     

    Điều này sẽ tạo ra kết quả sau:

    2. Mảng kết hợp - Mảng với các phím được đặt tên

    Các mảng kết hợp rất giống với mảng số về mặt chức năng nhưng chúng khác nhau về chỉ mục của chúng. Mảng kết hợp sẽ có chỉ mục của chúng dưới dạng chuỗi để bạn có thể thiết lập mối liên kết chặt chẽ giữa khóa và giá trị.

    Để lưu trữ tiền lương của nhân viên trong một mảng, một mảng được lập chỉ mục bằng số sẽ không phải là lựa chọn tốt nhất. Thay vào đó, chúng tôi có thể sử dụng tên nhân viên làm khóa trong mảng kết hợp của chúng tôi và giá trị sẽ là mức lương tương ứng của họ.

    LƯU Ý - Không giữ mảng kết hợp bên trong báo giá kép trong khi in nếu không nó sẽ không trả về bất kỳ giá trị nào.

    Thí dụ:

     

      

         

            /* First method to associate create array. */

            $salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);

            echo "Salary of mohammad is ". $salaries['mohammad'] . "
    ";

            echo "Salary of qadir is ".  $salaries['qadir']. "
    ";

            echo "Salary of zara is ".  $salaries['zara']. "
    ";

            /* Second method to create array. */

            $salaries['mohammad'] = "high";

            $salaries['qadir'] = "medium";

            $salaries['zara'] = "low";

            echo "Salary of mohammad is ". $salaries['mohammad'] . "
    ";

            echo "Salary of qadir is ".  $salaries['qadir']. "
    ";

            echo "Salary of zara is ".  $salaries['zara']. "
    ";

         ?>

      

     

    Điều này sẽ tạo ra kết quả sau:

    3. Mảng đa chiều - Mảng chứa một hoặc nhiều mảng

    Mảng đa chiều mỗi phần tử trong mảng chính cũng có thể là một mảng. Và mỗi phần tử trong mảng phụ có thể là một mảng, v.v. Giá trị trong mảng đa chiều được truy cập bằng nhiều chỉ mục.

    Thí dụ:

    Trong ví dụ này, chúng ta tạo một mảng hai chiều để lưu trữ các dấu hiệu của ba học sinh trong ba môn học.

    Ví dụ này là một mảng kết hợp, bạn có thể tạo mảng số theo cùng một kiểu.

     

      

         

            $marks = array(

               "mohammad" => array (

                  "physics" => 35,

                  "maths" => 30,

                  "chemistry" => 39

               ),

               "qadir" => array (

                  "physics" => 30,

                  "maths" => 32,

                  "chemistry" => 29

               ),

               "zara" => array (

                  "physics" => 31,

                  "maths" => 22,

                  "chemistry" => 39

               )

            );

            /* Accessing multi-dimensional array values */

            echo "Marks for mohammad in physics : " ;

            echo $marks['mohammad']['physics'] . "
    ";

            echo "Marks for qadir in maths : ";

            echo $marks['qadir']['maths'] . "
    ";

            echo "Marks for zara in chemistry : " ;

            echo $marks['zara']['chemistry'] . "
    ";

         ?>

      

     

    Điều này sẽ tạo ra kết quả sau:

    4. Danh sách hàm dùng để xử lý Mảng (Array) trong PHP

    Cột PHP chỉ phiên bản PHP sớm nhất mà hỗ trợ hàm đó.

    Hàm

    Miêu tả

    PHP

    Hàm array()

    Tạo một mảng

    3

    Hàm array_change_key_case()

    Trả về một mảng với tất cả key trong dạng chữ hoa hoặc chữ thường

    4

    Hàm array_chunk()

    Chia một mảng thành một mảng các mảng

    4

    Hàm array_combine()

    Tạo một mảng bởi sử dụng một mảng cho key và mảng khác cho value

    5

    Hàm array_count_values()

    Trả về một mảng với số lần xuất hiện mỗi value

    4

    Hàm array_diff()

    So sánh các value của mảng, và trả về các sự khác nhau

    4

    Hàm array_diff_assoc()

    So sánh key và value của mảng, và trả về sự khác nhau

    4

    Hàm array_diff_key()

    So sánh các key của mảng, và trả về các sự khác nhau

    5

    Hàm array_diff_uassoc()

    So sánh key và value của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau

    5

    Hàm array_diff_ukey()

    So sánh key của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau

    5

    Hàm array_fill()

    Điền value vào một mảng

    4

    Hàm array_fill_keys()

    Điền value vào một mảng, chỉ rõ các key

    5

    Hàm array_filter()

    Lọc các phần tử của một mảng bởi sử dụng một hàm do người dùng tạo

    4

    Hàm array_flip()

    Trao đổi tất cả key với value được liên hợp với chúng trong một mảng

    4

    Hàm array_intersect()

    So sánh các value trong mảng và trả về các so khớp

    4

    Hàm array_intersect_assoc()

    So sánh các key và value trong mảng và trả về các so khớp

    4

    Hàm array_intersect_key()

    So sánh các key trong mảng và trả về các so khớp

    5

    Hàm array_intersect_uassoc()

    So sánh các key và value trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp

    5

    Hàm array_intersect_ukey()

    So sánh các key trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp

    5

    Hàm array_key_exists()

    Kiểm tra xem key đã cho có tồn tại trong mảng không

    4

    Hàm array_keys()

    Trả về tất cả key của một mảng

    4

    Hàm array_map()

    Gửi mỗi value của một mảng tới một hàm do người dùng tạo, mà trả về các value mới

    4

    Hàm array_merge()

    Sáp nhập một hoặc nhiều mảng thành một mảng

    4

    Hàm array_merge_recursive()

    Sáp nhập một hoặc nhiều mảng thành một mảng

    4

    Hàm array_multisort()

    Sắp xếp các mảng đa chiều

    4

    Hàm array_pad()

    Chèn số lượng item đã xác định với một value đã xác định vào một mảng

    4

    Hàm array_pop()

    Xóa phần tử cuối cùng của một mảng

    4

    Hàm array_product()

    Tính toán tích các value trong một mảng

    5

    Hàm array_push()

    Chèn một hoặc nhiều phần tử vào phần cuối của một mảng

    4

    Hàm array_rand()

    Trả về một hoặc nhiều key ngẫu nhiên từ một mảng

    4

    Hàm array_reduce()

    Trả về một mảng ở dạng string, sử dụng hàm do người dùng tạo

    4

    Hàm array_reverse()

    Trả về một mảng với thứ tự bị đảo ngược

    4

    Hàm array_search()

    Tìm kiếm một mảng cho một value đã cho và trả về key

    4

    Hàm array_shift()

    Gỡ bỏ phần tử đầu tiên từ một mảng, và trả về value của phần tử bị gỡ bỏ

    4

    Hàm array_slice()

    Trả về các phần đã chọn của một mảng

    4

    Hàm array_splice()

    Gỡ bỏ và thay thế các phần tử đã xác định của một mảng

    4

    Hàm array_sum()

    Trả về tổng các value trong một mảng

    4

    Hàm array_udiff()

    So sánh các value của mảng trong một hàm do người dùng tạo và trả về một mảng

    5

    Hàm array_udiff_assoc()

    So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng

    5

    Hàm array_udiff_uassoc()

    So sánh các key và value của mảng trong một hàm do người dùng tạo, và trả về một mảng

    5

    Hàm array_uintersect()

    So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng

    5

    Hàm array_uintersect_assoc()

    So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng

    5

    Hàm array_uintersect_uassoc()

    So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng

    5

    Hàm array_unique()

    Gỡ bỏ bản sao các value từ một mảng

    4

    Hàm array_unshift()

    Thêm một hoặc nhiều phần tử tới phần đầu của mảng

    4

    Hàm array_values()

    Trả về tất cả value của một mảng

    4

    Hàm array_walk()

    Áp dụng một hàm do người dùng tạo tới mỗi thành viên của một mảng

    3

    Hàm array_walk_recursive()

    Áp dụng một hàm một cách đệ qui do người dùng tạo tới mỗi thành viên của một mảng

    5

    Hàm arsort()

    Sắp xếp một mảng với thứ tự đảo ngược và duy trì liên kết chỉ mục

    3

    Hàm asort()

    Sắp xếp một mảng và duy trì liên kết chỉ mục

    3

    Hàm compact()

    Tạo một mảng chứa các biến và các value của chúng

    4

    Hàm count()

    Đếm các phần tử trong một mảng, hoặc các thuộc tính trong một đối tượng

    3

    Hàm current()

    Trả về phần tử hiện tại trong một mảng

    3

    Hàm each()

    Trả về cặp key và value hiện tại từ một mảng

    3

    Hàm end()

    Thiết lập con trỏ nội bộ của một mảng tới phần tử cuối cùng của nó

    3

    Hàm extract()

    Nhập các biến vào trong bảng biểu tượng hiện tại từ một mảng

    3

    Hàm in_array()

    Kiểm tra nếu một value đã xác định là tồn tại trong một mảng

    4

    Hàm key()

    Lấy một key từ một mảng

    3

    Hàm krsort()

    Sắp xếp một mảng bằng các key theo thứ tự đảo ngược

    3

    Hàm ksort()

    Sắp xếp một mảng bằng các key

    3

    Hàm list()

    Gán các biến như nếu chúng là một mảng

    3

    Hàm natcasesort()

    Sắp xếp một mảng bởi sử dụng một thuật toán "natural order" không phân biệt kiểu chữ

    4

    Hàm natsort()

    Sắp xếp một mảng bởi sử dụng một thuật toán "natural order"

    4

    Hàm next()

    Tăng con trỏ mảng nội bộ hay trỏ tới phần tử kế tiếp của một mảng

    3

    Hàm pos()

    Alias của hàm current()

    3

    Hàm prev()

    Giảm con trỏ mảng nội bộ hay trỏ tới phần tử ở trước của một mảng

    3

    Hàm range()

    Tạo một mảng chứa một phạm vi phần tử

    3

    Hàm reset()

    Thiết lập con trỏ nội bộ của mảng về phần tử đầu tiên của nó

    3

    Hàm rsort()

    Sắp xếp một mảng theo thứ tự đảo ngược

    3

    Hàm shuffle()

    Xáo trộn một mảng

    3

    Hàm sizeof()

    Alias của hàm count()

    3

    Hàm sort()

    Sắp xếp một mảng

    3

    Hàm uasort()

    Sắp xếp một mảng với một hàm do người dùng tạo và duy trì liên kết chỉ mục

    3

    Hàm uksort()

    Sắp xếp một mảng bằng các key bởi sử dụng một hàm do người dùng tạo

    3

    Hàm usort()

    Sắp xếp một mảng bằng các value bởi sử dụng một hàm do người dùng tạo

    3

    Tìm hiểu về Mảng (Array) trong PHP sẽ giúp các bạn tạo ra một mảng, công việc code sẽ trở nên dễ dàng và đơn giản hơn. Chúc các bạn thành công!

    Kiến thức về lập trình PHP khác bạn nên xem:

Đánh giá của học viên đã tốt nghiệp

  • Các anh chị nhiệt tình, thân thiện. Em được mở mang nhiều kiến thức

    Nguyễn Hằng ly
  • Các chị dạy rất dễ hiểu và nhiệt tình. Các kiến thức như trong thực tế khi em đi thực tập tại RikkeiSoft. Cám ơn các anh chị nhiều ạ. Chúc Dev có nhiều học viên hơn nữa.

    Vũ Thị Hà Phương
  • Học ở DevPro đã giúp mình có nhiều kinh nghiệm lập trình android thực tế. Tại đây mình được các thầy dạy rất chi tiết theo một lộ trình rõ ràng của dự án cụ thể nên sau này đi làm mình rất dễ bắt nhịp với công việc.

    Nguyễn Trọng Duy
  • Qua khoá học ở DevPro thì em đã có một “ít” vốn trong tay để có thể "bò" trong lĩnh vực vạn người mê này Trong qúa trình học thì em cảm thấy trung tâm suppost rất nhiệt tình từ đồ ăn tối, event và đầu ra :p. Có chị Quyên "sinh gái" siêu nhây và siêu lầy dụ dỗ bán rẻ học viên cho các nhà tuyển dụng :3 **** Đặc biệt các thầy có rất nhiều kinh nghiệm chỉ dạy và giúp đỡ rất nhiệt tính < mấy tháng liền bám càng đi nhờ thấy :p>

    PhạmTiến Đạt
  • Tôi sẽ không khuyên các bạn phải đến DevPro để học tập thay vì những chỗ khác nhưng tôi đã từng là một người giống các bạn. Tôi băn khoăn không biết chọn nơi đâu làm ngọn đèn chỉ lối và tôi đến với Devpro . Mọi người khá hoà đồng , các thầy cũng cực nhiệt tình nhưng cũng có vốn kiến thức rất rộng còn lại là phụ thuộc vào sự nỗ lực của các bạn nữa thôi. Cố lên nhé. #ATran

    Trần Xuân Ái
  • em thấy mọi thứ đều ổn, thầy giáo nhiệt tình trong cách giảng dậy, dev cũng rất quan tâm học viên . Nhưng theo quan điểm của em và nhìn từ sự phát triển của các trung tâm khác , em nghĩ mỗi khóa học ở dev nên có bài tập cũng như dự án giao cho học sinh làm để tạo áp lực cho học viên code, giữa học viên và công ty cần có những buổi giao lưu nhiều hơn, và cũng nên có 1 số bạn trợ giảng giúp thầy đi fix những lỗi cơ bản cho những bạn hay sai , chứ nhiều khi 1 mình thầy mà phải chạy đến từng bàn fix lỗi cũng k xuể , Xin chúc devpro ngày càng phát triển hơn

    Nguyễn Đình Thành
  • Thầy giáo dạy rất nhiệt tình rất dễ hiểu, các chị quản lý vui vẻ, tạo động lực học viên. Bài giảng phong phú bao gồm nhiều kiến thức nền tảng. .., giúp học viên nắm chắc kiến thức. Có điều lớp toàn nam, ko có nữ ạ

    Vũ Văn Thủy
  • -Thầy giáo rất nhiệt tình trong công tác giảng dạy , cũng như vui tính , thầy luôn giúp đỡ bọn e rất nhiệt tình ! Tuy chỉ học với lớp 1 thời gian không quá dài nhưng e cũng cảm thấy tuyệt vời vì đã từng là học trò của thầy ! - Chị Hằng và Chị Quyên rất vui tính và nhiệt tình giúp đỡ bọn e nữa ạ - e chúc trung tâm ngày càng đông học viên hơn nữa

    Phan Trung Phú
  • DevPro là một môi trường tốt để cho những ai chưa biết gì về lập trình theo học. Bên cạnh đó, đội ngũ giảng viên rất chất lượng, nhiệt tình chỉ bảo cả trên lớp lẫn ở nhà. Ngoài ra tôi rất thích chính sách giới thiệu việc làm cho học viên sau khi tốt nghiệp để có thể tiếp với các doanh nghiệp uy tín. Sau hơn 4 tháng học tập tại công ty, tôi đã hoàn toàn tự tin rằng mình có thể tự học hỏi và bắt đầu làm việc ở một công ty mới với vai trò Web Developer. Cảm ơn DevPro vì tất cả!!

    Nguyễn Đức Huy
  • Học một lúc 2 trường, nhưng mình vấn chưa biết tìm đam mê từ đâu. Từ lúc gặp chị Hằng mình đã quyết chọn theo android, và bây giờ mình chưa bao giờ thấy hạnh phúc đến thế. Mình có công việc ổn định, chuẩn bị onsite ở nhật 1 năm hi hi.

    Trần An Hưng
  • 1.Thầy đẹp trai thì không phải bàn rồi!! Lại được cái nhiệt tình!! ok. 2. Công ty có nhiệt tình hỗ trợ không? Công ty có nhiệt tình hỗ trợ sinh viên, vd:tiền học phí được chia làm 3 đợt giúp đỡ những sv khó khăn,.....

    Trương Quang Trường
  • Em thấy trung tâm dạy tốt và chất lượng ạ. Thầy và các chị đều tận tâm, nhiệt tình và hòa đồng. Đặc biệt là giải lao giữa giờ chúng em còn được ăn nhẹ, e rất thích khoản này.

    Trần Thị Hồng Nhung
  • Tại DevPro mình còn được học code trên tool mới nhất của Android, điều đó càng khiến mình thích thú hơn và trở nên say mê từ lúc nào không biết nữa. Không khí học ở đây rất vui vẻ, ngoài giờ học mình cùng các bạn còn được giải lao ăn nhẹ và trò chuyện cùng nhau nên rất thoải mãi.

    Trương Ngọc Đức
  • Dev chính là nơi giúp mình tìm thấy niềm yêu thích code, cũng chính là nơi đã cho mình những bước đi đầu tiên, cho mình những kiến thức nền tảng tốt nhất trên con đường theo đuổi nghề Dev.

    Nguyễn Thanh Hằng
  • Thầy giáo vui tính, nhiệt tình trả lời và giúp đỡ các bạn khi các bạn có thắc mắc hay khi gặp khó khăn. Các anh chị vui tính, thân thiện tạo cảm giác thoải mái và vui vẻ cho các bạn khi học ở đây.

    Cao Minh Lâm
  • Nghĩ lại hồi đấy, không có Devpro thì chắc giờ em phát rồ mất thôi! Em vốn nghĩ mình có thể tự học được, nhưng kiến thức vốn là vô tận, không có người hướng dẫn thì mình sẽ chẳng biết bắt đầu dư lào, bước tiếp là gì? Nhờ DevPro, sự tận tâm của các thầy mà em mới biết à hóa ra mọi thứ thật đơn giản.

    Kim Erico
  • Hồi học ở DevPro, mình rất quý thầy Việt và những người bạn. Từ kiến thức học được từ trung tâm mình đã mạnh dạn đi thực tập ở một công ty lớn của Nhật Bản và đến giờ đã là nhân viên chính thức ở đây rồi. Vui hơn nữa là có bạn học cùng lớp đó giờ đang là đồng nghiệp cùng mình luôn rồi. Hihi

    Nguyễn Thanh Việt
Nguyễn Hằng ly Vũ  Thị Hà Phương Nguyễn Trọng Duy PhạmTiến Đạt Trần Xuân Ái Nguyễn Đình Thành Vũ Văn Thủy Phan Trung Phú Nguyễn Đức Huy Trần An Hưng Trương Quang Trường Trần Thị Hồng Nhung Trương Ngọc Đức Nguyễn Thanh Hằng Cao Minh Lâm Kim Erico Nguyễn Thanh Việt
DevPro Việt Nam