Foreach có nhanh hơn php không?

Với bài viết này, chúng ta sẽ xem xét một số trường hợp khác nhau về cách giải quyết vấn đề Php Loop 100 Times

for [$i = 1; $i 
0 phải tạo một mảng trước khi trích xuất từng phần tử và kiểm tra phần cuối của mảng

foreach[ range[1, 100] as $index ]{
    echo $index."\n";
}
4

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s

vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với phần tăng tiền tố và hậu tố

Nếu chênh lệch thời gian khá quan trọng, bạn nên biết rằng vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với gia số tiền tố thực thi nhanh hơn vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với gia số hậu tố

Đó là bởi vì hậu tố giữ một bản sao của giá trị trước đó trước khi nó tăng giá trị đó lên một trong khi tiền tố tăng thêm một giá trị mà không giữ một bản sao của giá trị trước đó

Thí dụ

________số 8

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
0

vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với hàm
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00

Vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với chức năng
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 thực thi nhanh hơn so với không có

Chúng tôi chạy hai thử nghiệm trong khối mã bên dưới, thử nghiệm đầu tiên sử dụng vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với hàm
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 và thử nghiệm thứ hai sử dụng số phần tử trong mảng không có hàm
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00

Thí dụ

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
8

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
9

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 Không có chìa khóa và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 Có chìa khóa

Vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 không có khóa thực thi nhanh hơn khi so sánh với vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 có khóa và giá trị

Đoạn mã bên dưới có một mảng gồm mười phần tử, nơi chúng tôi thực hiện một vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 trên mảng. Lần thực thi đầu tiên không sử dụng khóa, trong khi lần thực thi thứ hai sử dụng khóa và giá trị

Thí dụ

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
6

vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với chức năng
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 với khóa và giá trị

Thử nghiệm trên một mảng có mười phần tử nằm giữa

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 [có khóa và giá trị] và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 có hàm
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 cho thấy rằng một
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 có khóa và một giá trị thực thi nhanh hơn một vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 có hàm đếm

Thí dụ

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
6

vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 không có khóa

Cả vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 có chức năng
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 không có phím đều thực thi ở cùng tốc độ

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
0

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
1

vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
00 và
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 với phạm vi

Vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 với số đếm thực thi nhanh hơn vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 với phạm vi

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
2

đầu ra

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
3

Hãy lưu ý khi bạn chạy các ví dụ mã trong trình duyệt web của mình, bạn sẽ nhận được các kết quả thời gian khác nhau. Chúng tôi đã thực hiện tất cả các ví dụ mã ở trên với PHP 8. 1. 2 trên Windows 10

Về khả năng đọc, bạn sẽ thấy rằng vòng lặp

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4 có khả năng đọc tốt hơn vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5. Đó là bởi vì, đối với vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
4, bạn sẽ biết rằng bạn đang thực hiện phép so sánh số nhỏ hơn số lớn hơn

Khi sử dụng

For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5 với phạm vi, bạn sẽ phải suy ra mục đích của hàm
";

	$time_two = microtime[true];
	for [$i=0; $i < 100000; $i++] {
		# code...
	}
	echo 'For loop with postfix $i: ' . [microtime[true] - $time_two] . ' s', PHP_EOL;
?>
0 trong vòng lặp
For loop: 0.001291036605835 s
Foreach + range loop: 0.00661301612854 s
5

Cái nào nhanh hơn cho foreach hoặc cho PHP?

Redis và PHP . foreach sao chép mảng mà phép lặp cần được thực hiện. Để cải thiện hiệu suất, khái niệm tham chiếu cần được sử dụng. The 'foreach' is slow in comparison to the 'for' loop. The foreach copies the array over which the iteration needs to be performed. For improved performance, the concept of references needs to be used.

Cái nào tốt hơn cho hoặc foreach trong PHP?

Vòng lặp foreach tốt hơn nhiều và hoạt động tốt hơn so với vòng lặp for.

Cái nào nhanh hơn foreach hay for?

forEach Loop .

Vòng lặp nào nhanh hơn PHP?

Vòng lặp do-while đáng kể là vòng lặp nhanh nhất. do-while thực sự nhanh hơn while gần một nửa. Tôi biết rằng chúng dành cho các mục đích khác nhau [ while kiểm tra điều kiện trước khi vòng lặp thực thi và do-while thực thi ít nhất một lần].

Chủ Đề