라이브러리

[PHP] DsSequence::reduce - 콜백 함수를 사용하여 시퀀스를 단일 값으로 줄입니다.




DsSequence::reduce


PHP 7.4 버전부터 도입된 `DsSequence::reduce` 메소드는 배열의 모든 요소를 하나의 값으로 축약하는 데 사용됩니다. 이 메소드는 `reduce` 함수와 유사하지만, `DsSequence` 클래스의 메소드이므로 배열을 인수로 받습니다.

# 사용법


`DsSequence::reduce` 메소드는 다음과 같은 형식으로 사용됩니다.

#hostingforum.kr
php

DsSequence::reduce($callback, $initial = null)



* `$callback`: 축약을 수행하는 콜백 함수입니다. 이 함수는 두 개의 인수를 받습니다: `$carry` (현재까지 축약된 값)와 `$current` (현재 요소).
* `$initial`: 초기값입니다. 축약을 수행할 때 `$carry`에 할당됩니다. 기본값은 `null`입니다.

# 예제


다음 예제는 `DsSequence::reduce` 메소드를 사용하여 배열의 모든 요소를 더하는 방법을 보여줍니다.

#hostingforum.kr
php

use function Dsarray_from_iterable;

use function Dssequence;



$numbers = [1, 2, 3, 4, 5];

$sequence = sequence($numbers);



$result = $sequence->reduce(function ($carry, $current) {

    return $carry + $current;

});



echo $result; // 15



이 예제에서, `$sequence`는 `DsSequence` 객체입니다. `reduce` 메소드는 콜백 함수를 호출하여 `$carry`와 `$current`를 인수로 받습니다. `$carry`는 현재까지 축약된 값 (`0`이 초기값입니다), `$current`는 현재 요소 (`1`, `2`, `3`, `4`, `5` 순서로)입니다. 콜백 함수는 `$carry`와 `$current`를 더하여 `$carry`를 업데이트합니다. 최종적으로 `$carry`는 배열의 모든 요소를 더한 결과 (`15`)가 됩니다.

# 초기값 사용


다음 예제는 `DsSequence::reduce` 메소드를 사용하여 배열의 모든 요소를 더하는 방법을 보여줍니다. 이 예제에서는 초기값 (`10`)을 사용합니다.

#hostingforum.kr
php

use function Dsarray_from_iterable;

use function Dssequence;



$numbers = [1, 2, 3, 4, 5];

$sequence = sequence($numbers);



$result = $sequence->reduce(function ($carry, $current) {

    return $carry + $current;

}, 10);



echo $result; // 25



이 예제에서, `$sequence`는 `DsSequence` 객체입니다. `reduce` 메소드는 콜백 함수를 호출하여 `$carry`와 `$current`를 인수로 받습니다. `$carry`는 초기값 (`10`), `$current`는 현재 요소 (`1`, `2`, `3`, `4`, `5` 순서로)입니다. 콜백 함수는 `$carry`와 `$current`를 더하여 `$carry`를 업데이트합니다. 최종적으로 `$carry`는 배열의 모든 요소를 더한 결과 (`25`)가 됩니다.

# 참고


`DsSequence::reduce` 메소드는 배열의 모든 요소를 하나의 값으로 축약하는 데 사용됩니다. 이 메소드는 `reduce` 함수와 유사하지만, `DsSequence` 클래스의 메소드이므로 배열을 인수로 받습니다. 초기값을 사용할 수 있으며, 콜백 함수를 사용하여 축약을 수행할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 598 페이지

검색

게시물 검색