@guillermo Все будет конечно зависеть от содержимого цикла (что происходит внутри цикла), но если просто пройтись по массиву, то ниже Вы можете посмотреть простой пример замера и можно видеть что for цикл будет работать быстрее, что в принципе ожидаемо:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $data = []; for ($i = 0; $i < 100000000; $i++) { $data[] = $i; } $start = microtime(true); foreach ($data as $value) { } echo "Foreach выполнен ", microtime(true) - $start, " секунд" . PHP_EOL; $start = microtime(true); for ($i = 0; $i < 100000000; $i++) { } echo "For выполнен ", microtime(true) - $start, " секунд\n"; // Результат: // Foreach выполнен 0.48601102828979 секунд // For выполнен 0.2732310295105 секунд |
Тестировался выше код на PHP
1
|
PHP 8.1.2 (cli) (built: Jul 21 2022 12:10:37) (NTS) |