@Ambrel

Как будет быстрее? Или как будет лучше?

У меня есть вот такой код:

foreach ($arr as $value) {
		$numbers[$value['one']]++;
		$numbers[$value['two']]++;
		$numbers[$value['tree']]++;
		$numbers[$value['four']]++;
		$numbers[$value['five']]++;
	}


Будет ли быстрее ? Или будет ли лучше сделать вот так:

$for_numbers = ['one', 'two', 'tree', 'four', 'five'];

foreach ($arr as $value) {

		foreach($for_numbers as $val_numbers) {
			$numbers[$value[''.$val_numbers.'']]++;
		}
		
	}
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
amux
@amux
alp.ac
Отвечая на ваш вопрос:
foreach ($arr as $value) {
    ++$numbers[$value['one']];
    ++$numbers[$value['two']];
    ++$numbers[$value['tree']];
    ++$numbers[$value['four']];
    ++$numbers[$value['five']];
}


Преинкремент работает на ~10% быстрее так как ему не нужно хранить лишнюю переменную.
Ответ написан
Комментировать
@galliard
foreach ($arr as $value) {
    foreach ($value as $valueNum) {
        $numbers[$valueNum]++;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы