Mảng PHP là một bản đồ được sắp xếp (chứa giá trị trên cơ sở khóa). Nó được sử dụng để giữ nhiều giá trị cùng loại trong một biến duy nhất Show
Ưu điểm của Mảng PHPít mã hơn. Chúng ta không cần xác định nhiều biến Dễ dàng đi qua. Với sự trợ giúp của vòng lặp đơn, chúng ta có thể duyệt qua tất cả các phần tử của một mảng Sắp xếp. Chúng ta có thể sắp xếp các phần tử của mảng Các kiểu mảng PHPCó 3 loại mảng trong PHP
Mảng được lập chỉ mục PHPChỉ mục PHP được biểu thị bằng số bắt đầu từ 0. Chúng ta có thể lưu trữ số, chuỗi và đối tượng trong mảng PHP. Tất cả các phần tử mảng PHP được gán cho một số chỉ mục theo mặc định Trong bài học trước, chúng tôi đã đề cập rằng bạn có thể sử dụng một biến cho chỉ số của một mảng. Bạn thậm chí có thể làm toán với chỉ mục đó và có biểu thức số học bên trong [], như bên dưới // highScores array declaration int[] highScores = { 10, 9, 8, 8}; // use a variable for the index int index = 3; // modify array value at index highScores[index] = 11; // print array value at index System.out.println( highScores[index] ); System.out.println( highScores[index - 1] ); Đoạn mã trên in ra là gì? Hình 1. Mảng có biến chỉ số Bài tập mã hóa Bạn nghĩ đoạn mã sau sẽ in ra là gì? . Sau đó, chạy nó để xem nếu bạn đã đúng. Bạn cũng có thể theo dõi nó trong trình hiển thị bằng cách nhấp vào nút Show Code Lens 6. 2. 2. Đối với các mảng vòng lặp để đi quaChúng ta có thể sử dụng phép lặp với vòng lặp for để thăm từng phần tử của mảng. Điều này được gọi là duyệt qua mảng. Chỉ cần bắt đầu chỉ mục từ 0 và lặp lại trong khi chỉ mục nhỏ hơn độ dài của mảng. Lưu ý rằng biến i (viết tắt của chỉ mục) thường được sử dụng trong các vòng lặp làm biến đếm vòng lặp và được sử dụng ở đây để truy cập từng phần tử của một mảng bằng chỉ số của nó Hình 2. Đối với mảng đi qua vòng lặp Ví dụ: đây là một vòng lặp đi qua mảng highScores để in mọi điểm số. Thực hiện theo mã dưới đây trong trình hiển thị int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); } Ghi chú Sử dụng một biến làm chỉ mục là một tính năng trừu tượng hóa dữ liệu mạnh mẽ vì nó cho phép chúng ta sử dụng các vòng lặp với các mảng trong đó biến bộ đếm vòng lặp là chỉ mục của mảng. Điều này cho phép mã của chúng tôi khái quát hóa để hoạt động cho toàn bộ mảng Bài tập mã hóa Bạn nghĩ đoạn mã sau sẽ in ra là gì? . Sau đó, chạy nó để xem nếu bạn đã đúng. Thử nút Code Lens. Sau đó, hãy thử thêm tên của bạn và tên của một người bạn vào tên mảng và chạy lại mã. Mã có hoạt động mà không thay đổi vòng lặp không? Đoạn mã sau minh họa một vòng lặp thay đổi các giá trị trong một mảng. Trong mã này, mảng được truyền dưới dạng đối số cho các phương thức tĩnh trong lớp. Mảng trong Java là đối tượng. Các biến mảng là tham chiếu đến một địa chỉ trong bộ nhớ. Vì các mảng có thể rất lớn nên chúng ta không muốn sao chép chúng khi truyền chúng vào các phương thức. Khi một mảng được truyền dưới dạng đối số cho một phương thức, tên của mảng đề cập đến địa chỉ của nó trong bộ nhớ. Do đó, bất kỳ thay đổi nào đối với mảng trong phương thức sẽ ảnh hưởng đến mảng ban đầu. Bạn cũng có thể thử mã trong trình hiển thị Java Bài tập mã hóa Đoạn mã sau in ra là gì? . Sau đó chạy nó để xem nếu bạn đúng. Lưu ý rằng trong mã này, mảng được truyền dưới dạng đối số cho các phương thức. Bạn cũng có thể thử mã trong trình hiển thị Java bằng nút Code Lens Ghi chú Mảng trong Java là đối tượng. Khi các mảng được truyền dưới dạng đối số cho các phương thức, bất kỳ thay đổi nào đối với mảng trong phương thức sẽ ảnh hưởng đến mảng ban đầu, vì tên mảng là một giá trị tham chiếu đề cập đến địa chỉ của mảng trong bộ nhớ Kiểm tra việc hiểu của bạn Phương thức sau đây có mã chính xác để trừ amt khỏi tất cả các giá trị trong giá trị mảng, nhưng mã bị lẫn lộn. Kéo các khối từ bên trái vào đúng thứ tự bên phải. Bạn sẽ được thông báo nếu có bất kỳ khối nào sai thứ tự public static void subAll(int[] values, int amt) { --- for (int i = 0; --- i < values.length; --- i++) --- { --- values[i] = values[i] - amt; --- } // end for loop --- } // end method 6. 2. 3. Vòng từ sau ra trướcBạn không cần phải lặp qua một mảng từ trước ra sau. Bạn có thể lặp bằng cách bắt đầu từ phía sau của mảng và di chuyển về phía trước trong mỗi lần thực hiện vòng lặp. Trong ví dụ bên dưới, phương thức int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }0 trả về chỉ số của phần tử cuối cùng trong mảng nhỏ hơn đối số đã cho. Câu lệnh return bên trong vòng lặp dừng việc thực thi vòng lặp và phương thức và trả về chỉ mục được tìm thấy ngay lập tức quay lại phương thức chính. Nó trả về -1 nếu không có số nào trong mảng nhỏ hơn số đã cho Bài tập mã hóa Đoạn mã sau in ra là gì? . Theo dõi nó để theo dõi các giá trị mảng và đầu ra. Sau đó chạy nó để xem nếu bạn đúng. Bạn cũng có thể thử mã trong trình hiển thị Java bằng nút Code Lens. Bạn có thể thêm một phương thức khác để tìm chỉ mục của phần tử cuối cùng lớn hơn mục tiêu thay vì nhỏ hơn mục tiêu và yêu cầu bản in chính kiểm tra nó không? Kiểm tra việc hiểu của bạn 6-2-6. Đưa ra đoạn mã sau (giống hệt với phương thức trên), kết quả sẽ được trả về khi bạn thực thi. getIndexOfLastElementSmallerThanTarget(values,-13); private int[ ] values = {-20, -15, 2, 8, 16, 33}; public static int getIndexOfLastElementSmallerThanTarget(int[ ] values, int compare) { for (int i = values.length - 1; i >=0; i--) { if (values[i] < compare) return i; } return -1; // to show none found } 6-2-7. Đưa ra đoạn mã sau (giống hệt với phương thức trên), kết quả sẽ được trả về khi bạn thực thi. getIndexOfLastElementSmallerThanTarget(giá trị, 7); int[ ] values = {-20, -15, 2, 8, 16, 33}; public static int getIndexOfLastElementSmallerThanTarget(int[] values, int compare) { for (int i = values.length; i >=0; i--) { if (values[i] < compare) return i; } return -1; // to show none found } 6. 2. 4. Lặp qua một phần của mảngBạn không cần phải lặp qua tất cả các phần tử của một mảng. Bạn có thể lặp qua một số phần tử của mảng bằng cách sử dụng vòng lặp for. Đoạn mã sau nhân đôi năm phần tử đầu tiên trong một mảng. Lưu ý rằng nó sử dụng một điều kiện phức tạp ( int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }1) ở dòng 14 để đảm bảo rằng vòng lặp không vượt quá độ dài của mảng, bởi vì nếu bạn có một mảng có ít hơn 5 phần tử, bạn sẽ không muốn mã . Lưu ý rằng trong mã này, mảng là một biến thể hiện riêng của lớp ArrayWorker. Nó được tạo trong hàm tạo và được thay đổi hoặc truy cập bằng các phương thức Đoạn mã sau sẽ in ra là gì? Bài tập mã hóa Bạn thậm chí có thể bắt đầu ở giữa và lặp qua phần còn lại của mảng Điều này có hoạt động đối với các mảng có số phần tử chẵn không? Kiểm tra việc hiểu của bạn 6-2-10. Với các giá trị sau của a và phương thức doubleLast giá trị của a sẽ là bao nhiêu sau khi bạn thực thi. doubleLast()? private int[ ] a = {-20, -15, 2, 8, 16, 33}; public void doubleLast() { for (int i = a.length / 2; i < a.length; i++) { a[i] = a[i] * 2; } }
6-2-11. Với các giá trị sau của a và phương thức bí ẩn, giá trị của a sẽ là bao nhiêu sau khi bạn thực thi. huyền bí()? ________số 8 Chương trình sau đây có mã chính xác để đảo ngược các phần tử trong một mảng, a, nhưng mã bị lẫn lộn. Kéo các khối từ bên trái vào đúng thứ tự bên phải. Bạn sẽ được thông báo nếu có bất kỳ khối nào sai thứ tự public static void reverse(int[] a) { --- int temp = 0; int half = a.length / 2; int max = a.length - 1; --- for (int i = 0; i < half; i++) { --- temp = a[i]; --- a[i] = a[max - i]; --- a[max - i] = temp; --- } // end for --- } // end method Chương trình sau đây có mã đúng để trả về giá trị trung bình của 3 mục đầu tiên trong mảng a, nhưng mã bị lẫn lộn. Kéo các khối từ bên trái vào đúng thứ tự bên phải. Bạn sẽ được thông báo nếu có bất kỳ khối nào sai thứ tự hoặc thụt lề không chính xác int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }0 6. 2. 5. Các lỗi thường gặp khi lặp qua một mảngKhi xử lý tất cả các phần tử mảng, hãy cẩn thận bắt đầu từ chỉ mục đầu tiên là int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }2 và kết thúc ở chỉ mục cuối cùng. Thông thường các vòng lặp được viết sao cho chỉ số bắt đầu từ 0 và tiếp tục trong khi chỉ số nhỏ hơn int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }3 kể từ (arrayName. chiều dài - 1) là chỉ số cho phần tử cuối cùng trong mảng. Đảm bảo rằng bạn không sử dụng <= thay vì ArrayIndexOutOfBoundsException sẽ bị ném. Bị tắt bởi một lỗi, trong đó bạn tắt mảng theo 1 phần tử, rất dễ thực hiện khi duyệt qua một mảng dẫn đến một ArrayIndexOutOfBoundsException bị ném Kiểm tra việc hiểu của bạn
6-2-14. Tiêu đề vòng lặp nào sau đây sẽ gây ra lỗi ArrayIndexOutOfBounds khi duyệt qua các điểm của mảng? Bài tập mã hóa Đoạn mã sau có ArrayIndexOutOfBoundsException. Nó có 2 lỗi thường gặp trong vòng lặp. Bạn có thể sửa nó và làm cho vòng lặp in ra tất cả các điểm không? Hãy cẩn thận để không nhảy ra khỏi vòng lặp quá sớm khi bạn đang tìm kiếm một giá trị trong một mảng. Phương thức bên dưới sử dụng các câu lệnh trả về để dừng thực thi phương thức và trả về một giá trị cho phương thức đã gọi phương thức này. Tuy nhiên, bạn phải cẩn thận để không dừng vòng lặp quá sớm. Bài tập mã hóa Điều gì là sai với mã dưới đây? . Nếu chúng có các ký tự giống nhau theo cùng một thứ tự, nó sẽ trả về 0, nếu không, nó sẽ trả về -1. Nhưng, nó chỉ xử lý một phần tử của mảng. Làm cách nào bạn sửa mã để hoạt động chính xác (xử lý tất cả các phần tử mảng trước khi quay lại)? 6-2-17. Cho đoạn mã sau, thao tác nào sau đây sẽ gây ra vòng lặp vô hạn? int[] highScores = { 10, 9, 8, 11}; for (int i = 0; i < highScores.length; i++) { System.out.println( highScores[i] ); }5 6. 2. 6. Thử thách lập trình. Công cụ kiểm tra chính tảChúng tôi khuyến khích bạn làm việc theo cặp cho thử thách này. Đảm bảo rằng bạn đã hoàn thành bài tập mã hóa cuối cùng ở trên, điều này sẽ giúp bạn vượt qua thử thách này Mã Hoạt động sau đây sử dụng một mảng từ điển gồm 100 từ tiếng Anh phổ biến nhất. Chúng ta có thể sử dụng nó như một công cụ kiểm tra chính tả. Đối với một ứng dụng thực tế hơn, bạn có thể muốn sử dụng thay thế này. thay vào đó, mã có một từ điển khổng lồ các từ tiếng Anh được đọc từ một tệp và cho phép bạn nhập liệu bằng trình kiểm tra chính tả của mình. Nếu bạn sử dụng thay thế, hãy sao chép liên kết cho thay thế của bạn trong cửa sổ Mã hoạt động bên dưới để chuyển nó vào
3. Thử thách tùy chọn. Viết phương thức printStartsWith(String) để in ra các từ bắt đầu bằng Chuỗi ký tự trong mảng từ điển. Phương thức của bạn sẽ lấy một tham số cho các chữ cái đầu tiên dưới dạng Chuỗi. Bạn có thể sử dụng phương thức Java String startedWith() tại đây nếu muốn hoặc sử dụng indexOf() để xem liệu firstLetters có ở chỉ mục 0 của chuỗi không. Điều này không được tự động nâng cấp 6. 2. 8. Bản tóm tắt
6. 2. 9. trò chơi mảngHãy thử trò chơi dưới đây để thực hành các vòng lặp với mảng. Bấm vào Mảng rồi kiểm tra Vòng lặp và bấm vào các phần tử của mảng * sẽ được in ra bằng mã đã cho. Nếu bạn gặp khó khăn, hãy kiểm tra Nhãn để xem các chỉ số. Chúng tôi khuyến khích bạn làm việc theo cặp và xem bạn có thể đạt được bao nhiêu điểm Đi qua một mảng là gì?Duyệt một mảng có nghĩa là truy cập từng phần tử (mục) được lưu trữ trong mảng để dữ liệu có thể được kiểm tra hoặc sử dụng như một phần của quy trình. In most high-level languages, it is necessary to create a variable that will track the position of the element currently being accessed.
Chúng ta có thể duyệt qua một mảng không?Duyệt qua một mảng
. Sử dụng vòng lặp for − Thay vì in từng phần tử, bạn có thể lặp chỉ mục bằng cách sử dụng vòng lặp for bắt đầu từ 0 đến độ dài của mảng (ArrayName. length) và truy cập các phần tử tại mỗi chỉ mục. You can traverse through an array using for loop or forEach loop. Using the for loop − Instead on printing element by element, you can iterate the index using for loop starting from 0 to length of the array (ArrayName. length) and access elements at each index.
Các loại mảng khác nhau trong PHP là gì?Trong PHP, có ba loại mảng. Mảng có chỉ số - Mảng có chỉ số là số . Mảng kết hợp - Mảng có khóa được đặt tên . Mảng nhiều chiều - Mảng chứa một hoặc nhiều mảng .
Làm cách nào để lặp qua mảng trong PHP?6 cách lặp qua một mảng trong php . while(biểu thức){ // Đoạn mã được thực thi } do { // Đoạn mã được thực thi } while(biểu thức); for (expr1; expr2; expr3) { // Code sẽ được thực thi } mảng_walk(mảng. đối tượng &$array, gọi lại được $arg, hỗn hợp $arg = null). bool |