Làm cách nào để duyệt qua một mảng nhiều chiều trong PHP?
Khi bạn có một mảng nhiều chiều, bạn có thể sử dụng cấu trúc 05 để lặp qua mảng đó Bạn cần sử dụng hai câu lệnh 05 như trong đoạn mã sau
Đoạn mã trên sẽ cho đầu ra sau
Câu lệnh 05 đầu tiên sẽ lặp qua mảng chính, trong khi câu lệnh thứ hai sẽ lặp qua từng mảng con Bạn cũng có thể sử dụng mã tương tự khi lặp qua một mảng đa chiều kết hợp như hình bên dưới
Mảng nhiều chiều là loại mảng lưu trữ một mảng khác tại mỗi chỉ mục thay vì một phần tử. Nói cách khác, định nghĩa mảng nhiều chiều là mảng của mảng. Như tên gợi ý, mọi phần tử trong mảng này có thể là một mảng và chúng cũng có thể chứa các mảng con khác bên trong. Mảng hoặc mảng con trong mảng đa chiều có thể được truy cập bằng nhiều chiều kích thước. Kích thước của mảng nhiều chiều cho biết số chỉ số cần thiết để chọn một phần tử. Đối với mảng hai chiều, hai chỉ số để chọn một phần tử mảng hai chiều. Đây là dạng đơn giản nhất của mảng nhiều chiều. Nó có thể được tạo bằng cách sử dụng mảng lồng nhau. Các loại mảng này có thể được sử dụng để lưu trữ bất kỳ loại phần tử nào, nhưng chỉ mục luôn là một số. Theo mặc định, chỉ mục bắt đầu bằng số không cú pháp array ( array (elements...), array (elements...), ... ) Ví dụ 08 09 10 11 09 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )1 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )2 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )3 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )4____45 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )9 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 41Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 45 46 47 46 4930 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 34 4636 4638 39 array ( array (elements...), array (elements...), ... )30 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 array ( array (elements...), array (elements...), ... )32 _______333____43____330 array ( array (elements...), array (elements...), ... )36 đầu ra. Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) ) Mảng kết hợp hai chiều. Mảng kết hợp tương tự như mảng được lập chỉ mục nhưng thay vì lưu trữ tuyến tính (lưu trữ được lập chỉ mục), mọi giá trị có thể được gán bằng khóa do người dùng xác định thuộc loại chuỗi Ví dụ 08 09 array ( array (elements...), array (elements...), ... )39 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )20 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )21 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )4____45 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )27 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 45 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 085 084 087 ________ 2084 ________ 2089 ________ 2090 ________ 2084 ________ 2092 ________ 2093 ________ 2084 ________ 2095 ________ 2096 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 083 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 101 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 47 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 085 084 087 ________ 2084 ________ 2089 ________ 2114 ________ 2084 ________ 2092 ________ 2117 ________ 2084 ________ 2095 ________ 400 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )05 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )07 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 085 084 087 ________ 2084 ________ 2089 ________ 418 ________ 2084 ________ 2092 ________ 400 ________ 2084 ________ 2095 ________ 424 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 array ( array (elements...), array (elements...), ... )30 09 ________ 429 ________ 430 ________ 431 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 _______333____421____330 array ( array (elements...), array (elements...), ... )36 đầu ra. 4Mảng ba chiều. Nó là dạng của mảng nhiều chiều. Khởi tạo mảng 3 chiều cũng giống mảng 2 chiều. Sự khác biệt là khi số lượng kích thước tăng lên thì số lượng dấu ngoặc lồng nhau cũng sẽ tăng lên cú pháp 3 Ví dụ 08 09 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )39 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )40 09 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )42 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )3 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )4____45 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 ________ 2084 ________ 45 ________ 452 ________ 2084 ________ 45 ________ 455 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 ________ 2084 ________ 45 ________ 463 ________ 2084 ________ 45 ________ 466 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 array ( array (elements...), array (elements...), ... )30 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 array ( array (elements...), array (elements...), ... )32 _______333____43____330 array ( array (elements...), array (elements...), ... )36 đầu ra. array ( array (elements...), array (elements...), ... )3 Truy cập các phần tử mảng nhiều chiều. Có hai cách chủ yếu để truy cập các phần tử mảng đa chiều trong PHP
Ví dụ 08 09 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )78 11 09 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )1 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )82 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )21 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )4____45 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )27 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 45 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )97 084 087 ________ 2084 ________ 2089 ________ 2090 ________ 2084 ________ 2092 ________ 2093 ________ 2084 ________ 2095 ________ 2096 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 083 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 101 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 47 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )97 084 087 ________ 2084 ________ 2089 ________ 2114 ________ 2084 ________ 2092 ________ 2117 ________ 2084 ________ 2095 ________ 400 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )05 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )07 080 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )5 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 083 084 085 084 087 ________ 2084 ________ 2089 ________ 418 ________ 2084 ________ 2092 ________ 400 ________ 2084 ________ 2095 ________ 424 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 30 array ( array (elements...), array (elements...), ... )30 09 461 462Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 464 465Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )29 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )21 468 469 470 471 472 473 474Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 476 477Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )6 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )21 480 481 482Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )8 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )29 481 468 471 488_______1489 490 481 468 493 488 489 490 481 468 499 488 473 474303 Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )7 array ( array (elements...), array (elements...), ... )36 đầu ra. Array ( [0] => Array ( [0] => Ankit [1] => Ram [2] => Shyam ) [1] => Array ( [0] => Unnao [1] => Trichy [2] => Kanpur ) )2 PHP là ngôn ngữ kịch bản phía máy chủ được thiết kế dành riêng cho phát triển web. Bạn có thể học PHP từ đầu bằng cách làm theo Hướng dẫn PHP và Ví dụ về PHP này Làm cách nào để lặp qua mảng nhiều chiều trong PHP?Trả lời. Sử dụng vòng lặp lồng nhau trong PHP
.
Làm cách nào để lấy giá trị từ mảng nhiều chiều trong PHP?Truy xuất giá trị. Chúng ta có thể lấy giá trị của mảng nhiều chiều bằng phương pháp sau. . Sử dụng phím. Chúng ta có thể sử dụng khóa của mảng kết hợp để lấy trực tiếp giá trị dữ liệu. . Sử dụng vòng lặp foreach. Chúng ta có thể sử dụng vòng lặp foreach để truy xuất giá trị của từng khóa được liên kết bên trong mảng kết hợp đa chiều Làm cách nào để tìm độ dài của mảng nhiều chiều trong PHP?Cách dễ nhất để lấy độ dài của một mảng trong PHP là sử dụng hàm count() . Hàm PHP này sẽ duyệt qua một mảng và đếm số phần tử bên trong nó, cho chúng ta độ dài.
Làm cách nào để lấy giá trị từ mảng đa chiều trong PHP mà không cần foreach?Nếu bạn đang sử dụng PHP 5. 5+, bạn có thể sử dụng array_column() , như vậy. $result = array_column($foo, 'type'); . $result = array_values(array_column($foo, 'type')); |