Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Chủ đề: PHP / mysqlprev | Tiếp theoPrev|Next

Trả lời: Sử dụng vòng lặp lồng nhau PHP

Bạn có thể chỉ cần sử dụng vòng lặp

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
4 kết hợp với vòng
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
5 để truy cập và truy xuất tất cả các phím, phần tử hoặc giá trị bên trong một mảng đa chiều trong PHP.

Chúng ta hãy xem ví dụ sau để hiểu về cơ bản nó hoạt động như thế nào:

 array(
        "name" => "Peter Parker",
        "email" => "",
    ),
    "super-man" => array(
        "name" => "Clark Kent",
        "email" => "",
    ),
    "iron-man" => array(
        "name" => "Harry Potter",
        "email" => "",
    )
);
 
// Printing all the keys and values one by one
$keys = array_keys($superheroes);
for($i = 0; $i < count($superheroes); $i++) {
    echo $keys[$i] . "{
"; foreach($superheroes[$keys[$i]] as $key => $value) { echo $key . " : " . $value . "
"; } echo "}
"; } ?>


Câu hỏi thường gặp liên quan

Dưới đây là một số Câu hỏi thường gặp liên quan đến chủ đề này:

  • Cách nhận giá trị đơn từ một mảng trong PHP
  • Cách nhận tất cả các giá trị từ một mảng kết hợp trong PHP
  • Cách hiển thị cấu trúc mảng và giá trị trong PHP

Tôi đang phát triển một ứng dụng PHP sử dụng lớp cơ sở dữ liệu để truy vấn MySQL.

Lớp học ở đây: http://net.tutsplus.com/tutorials/php/real-world-op-with-php-and-mysql/*note có nhiều thực hành xấu được thể hiện trong hướng dẫn-không nên Được sử dụng như một hướng dẫn hiện đại!
*note there are multiple bad practices demonstrated in the tutorial -- it should not be used as a modern guide!

Tôi đã thực hiện một số điều chỉnh trên lớp để phù hợp với nhu cầu của tôi, nhưng có một vấn đề (có thể là một vấn đề ngu ngốc).

Khi sử dụng

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
6, nó sẽ trả về một mảng đa chiều có hàng có 3 cột kết hợp (ID, FirstName, LastName):

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)

Bây giờ tôi muốn mảng này được sử dụng làm kết quả MySQL (

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
7).

Tôi biết rằng nó có thể được sử dụng với

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8, nhưng đây là với các mảng đơn giản/phẳng. Tôi nghĩ rằng tôi phải tái cấu trúc một
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8 mới trong mỗi
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8, nhưng tôi nghĩ rằng điều này có thể làm chậm hoặc gây ra một số tải máy chủ cao hơn.

Vậy làm thế nào để áp dụng

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8 với mảng đa chiều này theo cách đơn giản nhất?

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Mickmackusa

40.1k11 Huy hiệu vàng79 Huy hiệu bạc121 Huy hiệu đồng11 gold badges79 silver badges121 bronze badges

Chúng ta có thể sử dụng Foreach Loop cho mảng đa chiều trong PHP không?Jun 20, 2011 at 15:24

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

1

Bạn có thể chỉ cần sử dụng vòng lặp foreach kết hợp với vòng lặp để truy cập và truy xuất tất cả các khóa, phần tử hoặc giá trị bên trong một mảng đa chiều trong PHP.

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}

Chúng ta có thể sử dụng Foreach Loop trong mảng đa chiều không?

Chúng ta có thể sử dụng nhiều câu lệnh foreach để lặp qua các mảng đa chiều.

Foreach () trong PHP là gì?16 gold badges33 silver badges48 bronze badges

Foreach là gì trong PHP? Phương thức foreach () được sử dụng để lặp qua các phần tử trong một mảng được lập chỉ mục hoặc kết hợp. Nó cũng có thể được sử dụng để lặp lại trên các đối tượng. Điều này cho phép bạn chạy các khối mã cho mỗi phần tử.Jun 20, 2011 at 15:29

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Chúng ta có thể sử dụng hai vòng foreach trong PHP không?Brad

Lưu ý - nếu có hơn 2 mảng, các vòng 'foreach' lồng nhau có thể được sử dụng. Ở đây, 2 mảng đã được tuyên bố và chúng đang được đi qua bằng cách sử dụng vòng lặp 'foreach'. Kết quả là chỉ số tương ứng của mỗi mảng được khớp và dữ liệu tại các chỉ số đó được hiển thị bên cạnh cái kia.48 gold badges341 silver badges513 bronze badges

2

Tôi đang phát triển một ứng dụng PHP sử dụng lớp cơ sở dữ liệu để truy vấn MySQL.

array_walk_recursive($array, function ($item, $key) {
    echo "$key holds $item\n";
});

Lớp học ở đây: http://net.tutsplus.com/tutorials/php/real-world-op-with-php-and-mysql/*note có nhiều thực hành xấu được thể hiện trong hướng dẫn-không nên Được sử dụng như một hướng dẫn hiện đại!Jun 20, 2011 at 15:38

Tôi đã thực hiện một số điều chỉnh trên lớp để phù hợp với nhu cầu của tôi, nhưng có một vấn đề (có thể là một vấn đề ngu ngốc).Karolis

Khi sử dụng

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
6, nó sẽ trả về một mảng đa chiều có hàng có 3 cột kết hợp (ID, FirstName, LastName):28 silver badges38 bronze badges

3

Bây giờ tôi muốn mảng này được sử dụng làm kết quả MySQL (

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
7).
In this case it could be for example:

foreach($my_array as $number => $number_array)
    {
    foreach($number_array as $data = > $user_data)
        {
            print "Array number: $number, contains $data with $user_data.  
"; } }

Tôi biết rằng nó có thể được sử dụng với

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8, nhưng đây là với các mảng đơn giản/phẳng. Tôi nghĩ rằng tôi phải tái cấu trúc một
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8 mới trong mỗi
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8, nhưng tôi nghĩ rằng điều này có thể làm chậm hoặc gây ra một số tải máy chủ cao hơn.Mar 31, 2015 at 8:07

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Vậy làm thế nào để áp dụng

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8 với mảng đa chiều này theo cách đơn giản nhất?

Mickmackusa

Đã hỏi ngày 20 tháng 6 năm 2011 lúc 15:24

foreach ($mda as $mdaKey => $mdaData) {
    echo $mdaKey . ": " . $mdaData["value"];
}

Bạn có thể sử dụng foreach ở đây tốt.

Tôi nghĩ rằng bạn đã quen với việc truy cập dữ liệu với các chỉ số số (chẳng hạn như

array_walk_recursive($array, function ($item, $key) {
    echo "$key holds $item\n";
});
2), nhưng điều này là không cần thiết. Chúng ta có thể sử dụng các mảng liên kết để có được dữ liệu chúng ta theo sau.Nov 6, 2014 at 1:12

arvy3arvy3arvy3

1361 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges

Holla/Xin chào, tôi đã nhận được nó! Bạn có thể dễ dàng lấy tên tệp, TMP_NAME, FILE_SIZE, v.v ... vì vậy tôi sẽ chỉ cho bạn cách lấy tên tệp với một dòng mã., I got it! You can easily get the file name,tmp_name,file_size etc.So I will show you how to get file name with a line of code.

for ($i = 0 ; $i < count($files['name']); $i++) {
    echo $files['name'][$i].'
'; }

Nó được kiểm tra trên PC của tôi.

Đã trả lời ngày 20 tháng 6 năm 2016 lúc 12:05Jun 20, 2016 at 12:05

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Để có được chi tiết từ mỗi giá trị trong một mảng đa chiều khá đơn giản một khi bạn có mảng của bạn tại chỗ. Vì vậy, đây là mảng:

$example_array = array(
array('1','John','Smith'),
array('2','Dave','Jones'),
array('3','Bob','Williams')
);

Sau đó, sử dụng một vòng lặp foreach và có mảng chạy qua như thế này:

foreach ($example_array as $value) {
echo $value[0]; //this will echo 1 on first cycle, 2 on second etc....
echo $value[1]; //this will echo John on first cycle, Dave on second etc....
echo $value[2]; //this will echo Smith on first cycle, Jones on second etc....
}

Bạn có thể lặp lại bất cứ điều gì bạn thích xung quanh nó, vì vậy để vang vọng vào một cái bàn:

echo ""
    foreach ($example_array as $value) {
    echo "";
    echo "";
    echo "";
    }
echo "
" . $value[0] . "" . $value[1] . "" . $value[2] . "
";

Nên cung cấp cho bạn một bảng như thế này:

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
0

Đã trả lời ngày 12 tháng 6 năm 2016 lúc 17:20Jun 12, 2016 at 17:20

Rmj86Rmj86Rmj86

1.1401 Huy hiệu vàng7 Huy hiệu bạc9 Huy hiệu đồng1 gold badge7 silver badges9 bronze badges

0

Ví dụ với

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
7:

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
1

Trong trường hợp của bạn với

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
4, với mảng
array_walk_recursive($array, function ($item, $key) {
    echo "$key holds $item\n";
});
6 bạn nhận được từ
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
6:

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
2

Nó giống như giống nhau, với sự lặp lại thích hợp.

Đã trả lời ngày 20 tháng 6 năm 2011 lúc 15:29Jun 20, 2011 at 15:29

Aorcsikaorcsikaorcsik

Phù vàng 14,9k4 Huy hiệu vàng38 Huy hiệu đồng4 gold badges38 silver badges49 bronze badges

Lý tưởng nhất là một mảng đa chiều thường là một mảng các mảng nên tôi đã hình dung khai báo một mảng trống, sau đó tạo các cặp khóa và giá trị từ DB dẫn đến một mảng riêng biệt, cuối cùng đã đẩy mỗi mảng được tạo trên vòng lặp vào mảng ngoài. Bạn có thể trả lại mảng bên ngoài trong trường hợp đây là một cuộc gọi chức năng riêng biệt. Hy vọng điều đó sẽ giúp

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
3

Đã trả lời ngày 19 tháng 2 năm 2015 lúc 16:53Feb 19, 2015 at 16:53

PolypolyPoly

133 huy hiệu đồng3 bronze badges

2

Tôi biết đây là một câu trả lời khá cũ. Đây là một giải pháp nhanh hơn mà không cần sử dụng

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
4:

Sử dụng

array_walk_recursive($array, function ($item, $key) {
    echo "$key holds $item\n";
});
9

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
4

Ngoài ra, bạn có thể kiểm tra trước khi thực hiện thao tác trên

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
5

Đã trả lời ngày 15 tháng 5 năm 2017 lúc 8:25May 15, 2017 at 8:25

RotimirotimiRotimi

4.7154 Huy hiệu vàng18 Huy hiệu bạc27 Huy hiệu đồng4 gold badges18 silver badges27 bronze badges

Về cơ bản, một foreach bình thường sẽ mang lại kết quả tương tự như mysql_fetch_assoc trong trường hợp của bạn?

Khi sử dụng foreach trên mảng đó, bạn sẽ nhận được một mảng chứa ba khóa đó: 'id', 'firstName' và 'lastName'.

Điều đó phải giống như mysql_fetch_assoc sẽ cung cấp (trong một vòng lặp) cho mỗi hàng.

Đã trả lời ngày 20 tháng 6 năm 2011 lúc 15:28Jun 20, 2011 at 15:28

YhnyhnYhn

2.7052 Huy hiệu vàng12 Huy hiệu bạc10 Huy hiệu đồng2 gold badges12 silver badges10 bronze badges

2

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
6

Fred Wuerges

1.9752 huy hiệu vàng21 Huy hiệu bạc42 Huy hiệu đồng2 gold badges21 silver badges42 bronze badges

Đã trả lời ngày 3 tháng 12 năm 2012 lúc 3:33Dec 3, 2012 at 3:33

Endipendipendip

Huy hiệu đồng 1711 bronze badge

2

Nếu bạn cần thực hiện thao tác chuỗi trên các phần tử mảng, ví dụ, sau đó sử dụng hàm gọi lại mảng_walk_recursive (hoặc thậm chí mảng_walk) hoạt động tốt. Cả hai đều có ích khi tự động viết các câu lệnh SQL.

Trong cách sử dụng này, tôi có mảng này với mỗi yếu tố cần một dấu phẩy và dòng mới được thêm vào.

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
7

Dữ liệu trong $ some_array 0: "Một số chuỗi trong một mảng" 1: "Một chuỗi khác trong một mảng"
0: "Some string in an array"
1: "Another string in an array"

Mỗi php.net

Nếu gọi lại cần phải hoạt động với các giá trị thực của mảng, chỉ định tham số đầu tiên của gọi lại làm tham chiếu. Sau đó, bất kỳ thay đổi nào được thực hiện cho các yếu tố đó sẽ được thực hiện trong chính mảng ban đầu.

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
8

Kết quả: "Một số chuỗi trong một mảng, \ n" "Một chuỗi khác trong một mảng, \ n"
"Some string in an array,\n"
"Another string in an array,\n"

Đây là cùng một khái niệm sử dụng Array_Walk để đặt tên bảng cơ sở dữ liệu vào trường.

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)
9

Dữ liệu trong các trường $: 0: "FirstName" 1: "LastName"
0: "FirstName"
1: "LastName"

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
0

Kết quả: "Nhân viên.FirstName" "Nhân viên.LastName"
"Employees.FirstName"
"Employees.LastName"


Tôi sẽ tò mò muốn biết liệu hiệu suất có vấn đề gì về Foreach hay không, nhưng đối với một mảng với một số yếu tố, IMHO, nó hầu như không đáng để xem xét.

Đã trả lời ngày 8 tháng 1 năm 2019 lúc 21:34Jan 8, 2019 at 21:34

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Một đối tượng tập kết quả MySQL ngay lập tức có thể lặp lại trong một

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8. Điều này có nghĩa là không cần thiết phải gọi bất kỳ loại chức năng/phương thức
foreach($my_array as $number => $number_array)
    {
    foreach($number_array as $data = > $user_data)
        {
            print "Array number: $number, contains $data with $user_data.  
"; } }
1 nào để truy cập dữ liệu hàng trong PHP. Bạn có thể chỉ cần chuyển đối tượng tập kết quả làm giá trị đầu vào của
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8.

Ngoài ra, từ Php7.1, "phá hủy mảng" cho phép bạn tạo các giá trị riêng lẻ (nếu mong muốn) trong khai báo

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
8.

Danh sách các ví dụ không khởi công mà tất cả đều tạo ra cùng một đầu ra: (Hộp cát PHPize)

foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
1
foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
2

*Lưu ý rằng bạn không cần liệt kê tất cả các cột trong khi phá hủy - chỉ những gì bạn dự định truy cập


foreach ($rows as $row) {
    echo $row['id'];
    echo $row['firstname'];
    echo $row['lastname'];
}
3

Đã trả lời vào ngày 30 tháng 5 lúc 23:03May 30 at 23:03

Hướng dẫn how to print multidimensional array in php using foreach loop - cách in mảng nhiều chiều trong php bằng vòng lặp foreach

Mickmackusamickmackusamickmackusa

40.1k11 Huy hiệu vàng79 Huy hiệu bạc121 Huy hiệu đồng11 gold badges79 silver badges121 bronze badges

Chúng ta có thể sử dụng Foreach Loop cho mảng đa chiều trong PHP không?

Bạn có thể chỉ cần sử dụng vòng lặp foreach kết hợp với vòng lặp để truy cập và truy xuất tất cả các khóa, phần tử hoặc giá trị bên trong một mảng đa chiều trong PHP..

Chúng ta có thể sử dụng Foreach Loop trong mảng đa chiều không?

Chúng ta có thể sử dụng nhiều câu lệnh foreach để lặp qua các mảng đa chiều..

Foreach () trong PHP là gì?

Foreach là gì trong PHP?Phương thức foreach () được sử dụng để lặp qua các phần tử trong một mảng được lập chỉ mục hoặc kết hợp.Nó cũng có thể được sử dụng để lặp lại trên các đối tượng.Điều này cho phép bạn chạy các khối mã cho mỗi phần tử.used to loop through the elements in an indexed or associative array. It can also be used to iterate over objects. This allows you to run blocks of code for each element.

Chúng ta có thể sử dụng hai vòng foreach trong PHP không?

Lưu ý - nếu có hơn 2 mảng, các vòng 'foreach' lồng nhau có thể được sử dụng.Ở đây, 2 mảng đã được tuyên bố và chúng đang được đi qua bằng cách sử dụng vòng lặp 'foreach'.Kết quả là chỉ số tương ứng của mỗi mảng được khớp và dữ liệu tại các chỉ số đó được hiển thị bên cạnh cái kia.If there are more than 2 arrays, nested 'foreach' loops can be used. Here, 2 arrays have been declared and they are being traversed using the 'foreach' loop. The result is that the respective index of every array is matched and the data at those indices are displayed one next to the other.