Làm cách nào để duyệt qua mảng bằng các cách khác nhau?
Nếu bạn không chỉ định khóa, như trong ví dụ đầu tiên, PHP sẽ chỉ gán các số tăng dần bắt đầu bằng 0. Tuy nhiên, những con số này không thể được đảm bảo tồn tại trong mảng theo bất kỳ thứ tự nhất định nào hoặc thậm chí tồn tại - bản thân chúng chỉ là các giá trị chính. Ví dụ: một mảng có thể có các khóa 0, 1, 2, 5, 3, 6, 7. Đó là, nó có thể có các phím không đúng thứ tự hoặc hoàn toàn bị mất. Do đó, mã như thế này thường nên tránh Show
Tuy nhiên, có một cách nhanh chóng và dễ dàng để đạt được điều tương tự. một vòng lặp foreach, bản thân nó có hai phiên bản. Cách dễ nhất để sử dụng foreach trông như thế này
Ở đây, mảng $array được lặp qua và các giá trị của nó được trích xuất thành $val. Trong tình huống này, các khóa mảng bị bỏ qua hoàn toàn, điều này thường có ý nghĩa nhất khi chúng được tạo tự động (i. e. 0, 1, 2, 3, v.v.) Cách thứ hai để sử dụng foreach cho phép bạn trích xuất các khóa và trông như thế này
Một cách khác thường được sử dụng để lặp qua các mảng là sử dụng các hàm list() và each(), như thế này
List() là một hàm ngược lại với array() - nó lấy một mảng và chuyển đổi nó thành các biến riêng lẻ. Each() lấy một mảng làm tham số và trả về khóa và giá trị hiện tại trong mảng đó trước khi di chuyển con trỏ mảng. "Con trỏ mảng" là thuật ngữ kỹ thuật cho phần tử của mảng hiện đang được đọc. Tất cả các mảng đều có một con trỏ và bạn có thể tự do di chuyển nó xung quanh - nó được sử dụng trong vòng lặp while ở trên, nơi chúng ta cần lặp qua một mảng. Để bắt đầu, each() sẽ trả về phần tử đầu tiên, sau đó là phần tử thứ hai, rồi đến phần tử thứ ba, v.v., cho đến khi nó tìm thấy không còn phần tử nào, trong trường hợp đó, nó sẽ trả về false và kết thúc vòng lặp Ý nghĩa của dòng đầu tiên đó là "lấy phần tử hiện tại trong mảng và gán khóa của nó cho $var và giá trị của nó cho $val, sau đó di chuyển con trỏ mảng. Có nhiều chi tiết hơn về con trỏ mảng sau này Nói chung, sử dụng vòng lặp foreach là cách tối ưu nhất để lặp qua một mảng và cũng là cách dễ đọc nhất. Tuy nhiên, trong thực tế, bạn sẽ thấy vòng lặp foreach và vòng lặp list()/each() có tỷ lệ bằng nhau, mặc dù tùy chọn sau chậm hơn. Sự khác biệt chính giữa hai là foreach tự động bắt đầu ở phía trước của mảng, trong khi list()/each() thì không Bạn muốn học PHP 7? Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó PHP, giống như hầu hết các ngôn ngữ lập trình khác, có nhiều cách để lặp qua các mảng. Các cách phổ biến nhất để làm điều đó thường là với toán tử 0, 1 và 2, nhưng, tin hay không thì tùy, có nhiều cách hơn để làm điều đó với PHP. Trong bài viết này, tôi sẽ hướng dẫn từng khả năng đọc mảng trong khi lặp1. Trong khi lặp lạiVòng lặp while có lẽ là phổ biến nhất vì cái tên dễ nhận biết và có ý nghĩa. Tôi luôn thích nghĩ về vòng lặp while như sau
Phương pháp này thường được sử dụng khi làm việc với các kết quả cơ sở dữ liệu theo kiểu mảng nhưng đồng thời, là một cách hoàn toàn khả thi để đọc các mảng kết quả phi cơ sở dữ liệu Với một mảng đơn giản, chúng ta có thể tạo một giá trị true hoặc false tùy thuộc vào việc mảng có được lặp cho đến hết hay không. Để đạt được điều này, một biến khác phải được tạo ra, một biến chỉ báo chỉ số thực hiện hai việc, cho phép chúng ta chọn ra từng giá trị trong mảng cũng như hướng dẫn vòng lặp while dừng khi nào. Nó hơi giống với cách thức hoạt động của vòng lặp 1 mà chúng ta sẽ đề cập sauMã PHP ________số 8đầu ra
2. cho vòng lặpNhư đã trình bày trong phần trước về vòng lặp 0, bạn sẽ thấy vòng lặp 1 tương tự như thế nào. Nó sử dụng cùng một khái niệm để lặp và chọn thông tin từ mảng. Ba tham số cần thiết cho vòng lặp 1 và chúng như sau –
Điểm bắt đầu của vòng lặp sẽ luôn trông giống như sau – 8Điều thực sự quan trọng cần lưu ý ở đây là bạn phải sử dụng dấu chấm phẩy sau hai tham số đầu tiên nếu không mã sẽ đưa ra một ngoại lệ. Ngoài ra, không cần tăng bộ đếm trong vòng lặp, vì toán tử 1 sẽ làm việc này cho bạn. Hãy để vòng lặp này hoạt động trong PHP sauMã PHP 6đầu ra
3. vòng lặp foreachLoại vòng lặp này là cách yêu thích của cá nhân tôi để đọc mảng, không cần kiểm tra 60, chỉ cần chuyển mảng vào và làm những gì bạn muốn với nó. Nó vừa dễ sử dụng, vừa dễ hiểu và có ích cho nhiều trường hợp sử dụng. Không có quy tắc bắt buộc nào trong việc sử dụng chỉ mục số để chọn ra các giá trị dữ liệu, vòng lặp 2 về cơ bản sẽ loại bỏ khái niệm này cho bạn. Hãy xem nó hoạt động –Mã PHP 0đầu ra 1Như bạn có thể thấy trong ví dụ về mã, có ít lỗi hơn về mã. Và, nếu bạn đặt tên biến tốt, mã sẽ có ý nghĩa hơn nhiều so với các phương thức lặp khác 4. Vòng lặp Do WhileBạn gần như có thể nói rằng vòng lặp 62 khá khan hiếm trong mã PHP, cá nhân tôi hiếm khi sử dụng nó và tương tự, hiếm khi thấy nó từ mã của những người khác. Về cơ bản, đây là một cách dài hơn hoặc nhiều mã hơn để thực hiện một vòng lặp while, theo một cách nào đó, khá vô nghĩa. Đồng thời, nó có thể dễ đọc hơn, nhưng cuối cùng, tất cả đều tùy thuộc vào sở thíchVới vòng lặp do while, bạn sẽ cần tạo một phép thử trong toán tử 0, giống như cách bạn làm trong trường hợp vòng lặp while thuần túyMã PHP 4đầu ra 1Như bạn có thể thấy trong mã, cần phải tạo một giá trị chỉ số gia tăng sẽ hoạt động như một phần kiểm tra và một phần để truy cập các giá trị từ mảng 5. Trình lặp mảngBây giờ, đây là một phương pháp vòng lặp nâng cao hơn một chút trên các mảng được gọi là 64. Nó là một phần của lớp rộng hơn, hiển thị nhiều biến và hàm có thể truy cập. Bạn có nhiều khả năng xem đây là một phần của các lớp PHP và các dự án hướng đối tượng nặng nề. Một lần nữa với chức năng này, bạn có thể thấy thích hợp hơn với những chức năng khác hoặc ngược lại. Tài liệu về 65 này rất đáng xem vì bạn có thể thấy chính xác những lợi ích mà nó mang lại. Ví dụ: nó ngay lập tức hiển thị số lượng mảng nhanh chóng và hữu íchMã PHP 8đầu ra 9Chức năng tham khảoDưới đây là các liên kết đến tài liệu về từng vòng lặp được sử dụng trong bài viết này. Hãy xem chúng vì chúng cực kỳ nhiều thông tin và hữu ích để đánh dấu trang để tham khảo sau này
Bản tóm tắtVới phần minh họa năm cách để lặp qua các mảng, bạn có thể thoải mái chọn một cách ưa thích và thực sự cá nhân để tự làm mọi việc. Trong một số trường hợp, cái này sẽ hoạt động tốt hơn cái kia về những gì bạn cần đạt được. Tôi hy vọng điều này hữu ích, bây giờ hãy làm một số thứ thú vị với một số vòng lặp. Cuối cùng, vui lòng sao chép bất kỳ mã nào trong bài viết này để sử dụng trong các dự án của riêng bạn hoặc chỉ để tham khảo Các cách khác nhau để duyệt qua một mảng là gì?Bạn có thể duyệt qua một mảng bằng vòng lặp for hoặc vòng lặp forEach . 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.
Làm cách nào để tìm kiếm một phần tử từ mảng bằng hàm dựng sẵn trong PHP?The array_search() là một hàm có sẵn trong PHP được sử dụng để tìm kiếm một giá trị cụ thể trong một mảng và nếu giá trị đó . Nếu có nhiều hơn một giá trị thì khóa của giá trị khớp đầu tiên sẽ được trả về.
Có bao nhiêu cách bạn có thể truy cập một mảng trong PHP?Các phần tử của mảng được truy cập bằng cách sử dụng khóa . Có hai loại mảng và loại khóa được sử dụng để truy cập một phần tử của mảng sẽ quyết định loại mảng. Trong một mảng khóa số, các phần tử được truy cập bằng cách chỉ định vị trí số của phần tử trong mảng.
Làm cách nào chúng ta có thể sử dụng các chỉ mục mảng theo hai cách khác nhau trong PHP?Có hai cách chủ yếu để chúng ta có thể tạo một mảng được lập chỉ mục. Đầu tiên là chỉ cần gán chỉ mục cho mọi giá trị 'theo cách thủ công' và tạo mảng của bạn . Thứ hai, chúng ta có thể sử dụng hàm array() mà không cần bất kỳ chỉ số nào và chỉ mục sẽ được gán theo mặc định và sẽ bắt đầu từ 0 cho phần tử hoặc giá trị đầu tiên. |