Что быстрее for или foreach в php?

Пользователь

от guillermo , в категории: PHP , 7 месяцев назад

Что быстрее for или foreach в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от dmitrypro77 , 7 месяцев назад

@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)
Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.