Vòng lặp 'foreach' chậm hơn so với vòng lặp 'for'. Foreach sao chép mảng mà vòng lặp cần thực hiện lặp lại.
Để cải thiện hiệu suất, khái niệm tham chiếu cần được sử dụng. Ngoài ra, 'foreach' dễ sử dụng hơn.
Ví dụ
Dưới đây là ví dụ mã đơn giản:
<?php
$my_arr = array();
for ($i = 0; $i < 10000; $i++) {
$my_arr[] = $i;
}
$start = microtime(true);
foreach ($my_arr as $k => $v) {
$my_arr[$k] = $v + 1;
}
echo "This completed in ", microtime(true) - $start, " seconds";
echo "<br>";
$start = microtime(true);
foreach ($my_arr as $k => &$v) {
$v = $v + 1;
}
echo "This completed in ", microtime(true) - $start, " seconds";
echo "<br>";
$start = microtime(true);
foreach ($my_arr as $k => $v) {}
echo "This completed in ", microtime(true) - $start, " seconds";
echo "<br>";
$start = microtime(true);
foreach ($my_arr as $k => &$v) {}
echo "This completed in ", microtime(true) - $start, " seconds";
?>
Kết quả
Điều này sẽ tạo ra kết quả sau:
This completed in 0.00058293342590332 seconds This completed in 0.00063300132751465 seconds This completed in 0.00023412704467773 seconds This completed in 0.00026583671569824 seconds