Làm cách nào chúng ta có thể lưu trữ các giá trị trong mảng bằng cách sử dụng vòng lặp for trong php?

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


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

foreach($array as $val) {
    print $val;
}

Ở đâ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

foreach ($array as $key => $val) {
    print "$key = $val\n";
}

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, rồi đến 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ó

Trong hướng dẫn này, chúng ta xem xét vòng lặp PHP foreach(). Chúng tôi cũng xem xét cách sử dụng nó trong khi làm việc với một mảng được lập chỉ mục hoặc kết hợp

Mục lục - PHP foreach

  • foreach() là gì?
  • Mã và giải thích
  • mảng được lập chỉ mục
  • mảng kết hợp
  • Bớt tư tưởng

foreach trong PHP là gì?

Phương thức

foreach (iterable as $key => $value)
    statement
8 đượ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 các đối tượng. Điều này cho phép bạn chạy các khối mã cho từng phần tử

Cú pháp của PHP foreach()

Phương thức foreach() có hai cú pháp, một cú pháp cho mỗi loại mảng

Cú pháp cho các mảng được lập chỉ mục như được đưa ra trong khối mã sau

foreach (iterable as $value)
    statement

Cú pháp cho mảng kết hợp

foreach (iterable as $key => $value)
    statement

Ở đây,

foreach (iterable as $key => $value)
    statement
9 là tham số bắt buộc. Nó là mảng hoặc biến chứa mảng.
";
}
?>
0 là một biến lưu trữ phần tử hiện tại trong mỗi lần lặp

Mảng được liên kết, sử dụng các khóa và giá trị, do đó,

";
}
?>
1 &
";
}
?>
2 trong cú pháp thứ hai biểu thị giống nhau cho phù hợp

Mã & Giải thích

Trong phần này, trước tiên chúng ta xem cách hàm

foreach (iterable as $key => $value)
    statement
8 hoạt động trên một mảng được lập chỉ mục, sau đó chúng ta xem nó hoạt động trên một mảng kết hợp

PHP Foreach() trên các mảng được lập chỉ mục

________số 8

Đầu ra của đoạn mã trên sẽ là

foreach($array as $val) {
    print $val;
}
3

PHP Foreach() trên một mảng Associated

foreach($array as $val) {
    print $val;
}
4

Đầu ra của đoạn mã trên sẽ là

foreach($array as $val) {
    print $val;
}
5

Bây giờ hãy xem trường hợp chúng ta truyền đối số thứ hai

Như bạn có thể thấy khóa và giá trị của mảng kết hợp đã được in. Ngoài ra, chúng tôi đã thay thế

";
}
?>
4 bằng
";
}
?>
5 để dễ đọc hơn

Bớt tư tưởng

Phương thức

foreach (iterable as $key => $value)
    statement
8 sẽ trả về lỗi trong trường hợp bạn sử dụng nó trên các biến có kiểu dữ liệu khác. Ngoài ra, phương pháp
foreach (iterable as $key => $value)
    statement
8 không sửa đổi các giá trị của con trỏ bên trong

Chúng ta có thể sử dụng vòng lặp cho mảng trong PHP không?

Vòng lặp foreach PHP . The foreach loop works only on arrays, and is used to loop through each key/value pair in an array.

Bạn có thể sử dụng vòng lặp for cho một mảng không?

Bạn có thể lặp qua các phần tử mảng bằng vòng lặp for và sử dụng thuộc tính độ dài để chỉ định số lần vòng lặp sẽ chạy.

Làm cách nào để lưu trữ các giá trị từ vòng lặp for vào một mảng trong JavaScript?

Ví dụ, một vòng lặp for như thế này. .
cho (hãy i = 0; tôi < mảng. chiều dài; . .
mảng. forEach((mục) => bảng điều khiển. .
mảng. forEach((mục, chỉ mục) => bảng điều khiển. .
cho (hãy i = 0; tôi < mảng. chiều dài; .
mảng = mảng. .
const newArr = mảng. .
const newArr = mảng. .
để tổng = 0;