array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
콜백 함수를 사용하여 배열을 단일 값으로 반복적으로 줄입니다.
[$initial] 마지막 인자는 초기 값 입니다.
사용방법을 알아보도록 하죠
$aa = []; $aa[] = [ 'isu_cd' => 'A0949921', 'kor_cor_nm' => '삼성전자', 'chg_dt' => '2015/12/25', 'tr_stp_rsn' => '감사의견 승인', ]; $aa[] = [ 'isu_cd' => 'A094190', 'kor_cor_nm' => '이엘케이', 'chg_dt' => '2020/05/22', 'tr_stp_rsn' => '감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)', ]; $res = array_reduce( $aa[1], function ($hab, $val) { echo "hab => $hab".PHP_EOL; echo "val => $val".PHP_EOL; echo '-------------------------'.PHP_EOL; return "$hab,$val"; }, 'AA' ); print_r($res);
hab => AA val => A094190 ------------------------- hab => AA,A094190 val => 이엘케이 ------------------------- hab => AA,A094190,이엘케이 val => 2020/05/22 ------------------------- hab => AA,A094190,이엘케이,2020/05/22 val => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성) ------------------------- AA,A094190,이엘케이,2020/05/22,감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
배열 aa[1] 번만 단일값으로 만들어봤습니다.
array_reduce 코드를 보시면 array_reduce(배열, 콜백, 초기값) 으로 사용 됩니다.
콜백 함수에 인자가 2개 있는데 function ($hab, $val)
첫번째 인자 : 이전 반복의 리턴 값을 보유합니다. 첫 번째 반복의 경우 대신 값을 유지합니다
두번째 인자 : 현재 반복의 값을 보유합니다.
자 그렇다면 위 배열 2개는 어떻게 할까요?
$res = array_map(function($arr) { return array_reduce( $arr, function ($hab, $val) { echo "hab => $hab".PHP_EOL; echo "val => $val".PHP_EOL; echo '-------------------------'.PHP_EOL; return "$hab,$val"; }, 'AA' ); }, $aa);
hab => AA val => A0949921 ------------------------- hab => AA,A0949921 val => 삼성전자 ------------------------- hab => AA,A0949921,삼성전자 val => 2015/12/25 ------------------------- hab => AA,A0949921,삼성전자,2015/12/25 val => 감사의견 승인 ------------------------- hab => AA val => A094190 ------------------------- hab => AA,A094190 val => 이엘케이 ------------------------- hab => AA,A094190,이엘케이 val => 2020/05/22 ------------------------- hab => AA,A094190,이엘케이,2020/05/22 val => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성) ------------------------- <pre>Array ( [0] => AA,A0949921,삼성전자,2015/12/25,감사의견 승인 [1] => AA,A094190,이엘케이,2020/05/22,감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성) )
'프로그래밍 > Php' 카테고리의 다른 글
mysql error ERROR 1366 (HY000): Incorrect string value: '\xF0\x9F\x98\x9C' for column 'comment' at row 1 (0) | 2020.11.09 |
---|---|
php 고차함수 array_map / array_reduce 사용 예제 (0) | 2020.07.31 |
그누보드 > 이윰빌더 og:image 안나올때 (0) | 2020.07.30 |
한번 포스팅으로 워드프레스 / 그누보드 / XE / 티스토리 에 동시에 배포 (0) | 2020.07.30 |
유머 커뮤니티 크롤링/파싱 시 본문내용이 안나올때 (0) | 2020.07.29 |