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:
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: //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?
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
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
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: //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
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 badgesforeach [$rows as $row] {
echo $row['id'];
echo $row['firstname'];
echo $row['lastname'];
}
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
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
Để 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 "" . $value[0] . " ";
echo "" . $value[1] . " ";
echo "" . $value[2] . " ";
}
echo "
";
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";
}];
9Array [ [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'];
}
0Kế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
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'];
}
1foreach [$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
Mickmackusamickmackusamickmackusa
40.1k11 Huy hiệu vàng79 Huy hiệu bạc121 Huy hiệu đồng11 gold badges79 silver badges121 bronze badges