Php에서`array_map`,`array_filter` 및`array_reduce`의 차이점을 설명하십시오.
Array_Map, array_filter 및 array_reduce의 차이점은 다음과 같습니다. 1.array_map 각 요소를 처리하고 새 배열을 반환합니다. 2. ARRAY_FILTER 필터 조건을 충족하거나 원래 값을 유지하거나 키 값을 수정하는 요소; 3. array_reduce는 배열을 결과에 응축시킵니다. 구체적으로, array_map은 새로운 배열을 생성하기위한 제곱 작업과 같은 배열에서 모든 요소를 변환하는 데 적합합니다. Array_Filter는 조건을 충족하는 요소를 필터링하는 데 사용되며 잘못된 값 및 사용자 정의 콜백 판단의 기본 필터링을 지원합니다. array_reduce는 합산 또는 스 플라이 싱 문자열과 같은 축적을 통해 배열을 단일 값으로 압축하며 초기 값을 사용자 정의하거나 첫 번째 요소가 기본적으로 사용됩니다. 세 가지에는 수정, 필터링 및 집계 작업에 해당하는 명확한 용도가 있습니다.
php, array_map
, array_filter
및 array_reduce
는 일반적으로 사용되는 배열 처리 기능입니다. 콜백 기능과 함께 사용하여 배열을 작동 할 수 있지만 각각의 용도는 다릅니다. 간단히 말하면 :

-
array_map
: 배열에서 각 요소를 처리하고 새 배열을 반환합니다. -
array_filter
: 기준을 충족하거나 원래 값을 유지하거나 키 값을 수정하는 필터 요소. -
array_reduce
: 배열을 합산, 스 플라이 싱 등과 같은 값으로 "수축"합니다.
아래의 실제 사용법과 차이점을 살펴 보겠습니다.
array_map
: 각 요소의 통합 처리를 수행하십시오
이 기능은 배열의 각 요소에 대해 약간의 변환을 수행하려는 상황에 적합합니다. 배열을 반복하고 각 요소를 콜백 함수로 전달한 다음 리턴 값을 수집하여 새 배열을 형성합니다.

일반적인 사용 예 :
$ 번호 = [1, 2, 3, 4]; $ squared = array_map (fn ($ n) => $ n * $ n, $ 숫자); // 결과 : [1, 4, 9, 16]
- 콜백 함수의 리턴 값이 있어야하며, 그렇지 않으면 위치가
null
됩니다. - 다중 배열을 전달할 수 있고 콜백 매개 변수는 하나씩 해당합니다 (예 : 두 배열이 추가).
- 여러 배열을 통과하고 키가 일치하지 않으면 원래 배열의 키가 유지되며 인덱스에 따라 병합됩니다.
array_filter
: 규칙을 준수하는 요소를 남겨 두십시오
배열에서 기준을 충족하는 특정 요소를 선택하려면이 기능을 사용하십시오. 요소의 값이 변경되지는 않습니다 (콜백에서 적극적으로 변경하지 않는 한). 머무를지 여부를 결정합니다.

사용하는 두 가지 방법 :
- 하나의 매개 변수 만 전달됩니다 . "false 값"(예 :
0
,false
,null
,''
)을 자동으로 필터링합니다. - 콜백 기능 가져 오기 : 판단 논리를 직접 정의하십시오.
$ 숫자 = [0, 1, 2, false, '', null, 3]; $ result = array_filter ($ 숫자); // 결과 : [1 => 1, 2 => 2, 6 => 3], "True value"만 남습니다. $ avide = array_filter ($ numbers, fn ($ n) => is_int ($ n) && $ n % 2 === 0); // 정수이고 숫자 인 값을 걸러 내기
알아채다:
- 원래 키 이름을 유지하려면
ARRAY_FILTER_USE_BOTH
플래그를 사용해야합니다. - 콜백 함수가
true
반환하면 유지되며false
는 제외됩니다.
array_reduce
: 배열을 결과에 집중하십시오
이것은 가장 유연하지만 오해가 가장 쉽습니다. 새 배열을 생성하는 데 사용되지 않고 결과를 지속적으로 "축적"하고 전체 배열을 합, 문자열 스 플라이 싱, 복잡한 계산 등과 같은 값으로 압축하는 데 사용됩니다.
$ 번호 = [1, 2, 3, 4]; $ sum = array_reduce ($ numbers, fn ($ carry, $ item) => $ carry $ item, 0); // 결과 : 10
핵심 사항 :
-
$carry
마지막으로 첫 번째 결과이며, 처음은 초기 값 (세 번째 매개 변수)입니다. -
$item
현재 처리 된 요소입니다. - 초기 값은 선택 사항입니다. 전달되지 않으면 첫 번째 요소는 기본값으로 초기 값으로 기본적이며 두 번째 요소에서 처리됩니다.
약간 더 복잡한 예를 들어 봅시다.
$ Word = [ 'Apple', 'Banana', 'Cherry']; $ result = array_reduce ($ word, fn ($ str, $ word) => $ str. '-'. $ word); // 결과 : 'Apple-Banana-Cherry'
기본적으로 그게 다야. 이 세 가지 기능은 콜백과 함께 사용될 수 있지만 명확한 책임이 있습니다. map
각 요소를 변경하고 filter
의 일부를 선택하여 하나의 결과로 reduce
. 그것을 사용할 때는 목적에 따라 더 명확하고 간결한 코드를 작성할 수 있습니다.
위 내용은 Php에서`array_map`,`array_filter` 및`array_reduce`의 차이점을 설명하십시오.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example : $ email = "user@example.com"; if (f ilter_var ($ 이메일, filter_validate_email) && checkdnsrr (Explode ( '@', $ email) [1], 'mx')) {echo "validandDeliverableEmail & qu

이 기사에서는 케이스 문을 사용하여 MySQL에서 조건부 집계를 수행하여 특정 필드의 조건부 합산 및 계산 방법에 대해 자세히 설명합니다. 실제 구독 시스템 사례를 통해 레코드 상태 (예 : "END"및 "CANCEL"과 같은 총 기간 및 이벤트 수를 동적으로 계산하여 복잡한 조건부 집계의 요구를 충족시킬 수없는 전통적인 합계 기능의 한계를 극복하는 방법을 보여줍니다. 튜토리얼은 합 함수로 사례 문의 적용을 자세히 분석하고 왼쪽 조인의 가능한 널 값을 다룰 때 Coalesce의 중요성을 강조합니다.

AseUnserialize (Serialize ($ obj))는 AllDataisserializable 이하의 경우 FordeepCopying; 그렇지 않으면, ubstract__clone () tomanuallyduplicateNestEdObjectSandavoidshartReferences.

USEARRAY_MERGE () TOCOMBINEARRAYS, DUCRITINGDUPLICATESTRINGKEYSANDENTEXINGUMERICEYS; FORSIMPLERCONCATENATION, 특히 인포드 55.6, USETHESPLATOPERATOR [... $ array1, ... $ array2].

네임 스페이스 인 네임 스페이스 inphorganizecodecodecodeandnamingnamingconflictsbygroupingclasses, 인터페이스, 함수, andconstantsOnspecificname.2.defineanamesUsUsingThenamesPaceyWordAtTHETOPOFOFILE, AFFORBINSPACENAME, suchATESKEYSTOI

toupdateadaBasereCordInphp, FirstConnectusingpdoorMysqli, whenEseprepredStatementStoExecuteAcureCuresqlupDateQuery.example : $ pdo = newpdo ( "mysql : host = localhost; dbname = your_database", $ username, $ username, $ sql = "squer erestemail);

The__call ()는 MethodsibleorundorundeRunded에서 정의 될 때 MethodStrigged를 정의하고, themodnameandarguments, asshowningwhendingderdefinedmethodslikesayhello ()

useathinfo ($ filename, pathinfo_extension) togetThefileExtension; itreliablyHandleSmultipledOtsededGecases, returningTheextension (예 : "pdf") oranEmptyStringifnoneExists.
