Foreach, Array_Map과 Lambda, Array_Map과 정적 함수의 성능 비교
이 기사에서는 배열: foreach 사용, 람다/클로저 함수와 함께 array_map 사용, '정적'과 함께 array_map 사용 함수/메서드.
foreach
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
람다로 매핑
return array_map(function($number) { return $number * 10; }, $numbers);
'으로 매핑 static' 함수, 문자열로 전달됨 참고자료
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
성능 벤치마크
다양한 PHP 버전(5.6, 7, HHVM)을 사용하여 실시한 벤치마크 결과는 다음과 같습니다.
PHP Version | Foreach | MapClosure | MapNamed | MapClosureI | ForEachI |
---|---|---|---|---|---|
5.6 | 0.57 | 0.59 | 0.69 | 0.73 | 0.60 |
7 | 0.11 | 0.16 | 0.11 | 0.19 | 0.11 |
HHVM | 0.09 | 0.10 | 0.10 | 0.11 | 0.09 |
일반적으로 람다 함수를 사용하는 foreach와 array_map은 비슷한 결과를 보였습니다. 성능. 정적 함수가 포함된 Array_map이 약간 느려졌습니다. use 문과 함께 클로저를 사용하면 눈에 띄는 성능 저하가 발생합니다.
결론
이러한 접근 방식 중 선택은 특정 사용 사례와 코드 가독성, 유지 관리 가능성, 그리고 성능. 간단한 변환의 경우 람다 함수가 포함된 foreach 및 array_map은 비슷한 성능을 제공하고 간결한 구문을 제공합니다. 보다 복잡한 변환의 경우 정적 함수가 포함된 array_map을 사용하면 잠재적인 성능 저하가 있기는 하지만 더 깔끔하고 재사용 가능한 코드 구조가 가능합니다.
위 내용은 foreach, array_map(Lambda 포함) 또는 array_map(정적 함수 포함) 중 가장 빠른 PHP 배열 변환 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!