프로그래밍/Php

php 고차함수 array_map / array_reduce 사용 예제

소행성왕자 2020. 7. 31. 15:37

아래 예제는 array_map 과 array_reduce 를 활용한 배열 을 어떻게 하면 편하게 만들까

하고 만들어본 예제 소스 입니다.

 

$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' => '감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)',
];

array_map("func", $aa);
function func($arr) {
    print_r($arr);
}

Array
(
    [isu_cd] => A0949921
    [kor_cor_nm] => 삼성전자
    [chg_dt] => 2015/12/25
    [tr_stp_rsn] => 감사의견 승인
)
Array
(
    [isu_cd] => A094190
    [kor_cor_nm] => 이엘케이
    [chg_dt] => 2020/05/22
    [tr_stp_rsn] => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
)




$zz = array_map(
    function ($arr) {
        return $arr;
    },
    $aa
);

    [0] => Array
        (
            [isu_cd] => A0949921
            [kor_cor_nm] => 삼성전자
            [chg_dt] => 2015/12/25
            [tr_stp_rsn] => 감사의견 승인
        )

    [1] => Array
        (
            [isu_cd] => A094190
            [kor_cor_nm] => 이엘케이
            [chg_dt] => 2020/05/22
            [tr_stp_rsn] => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
        )




$page = array_reduce(
    $aa[1],
    function ($hab, $val) {
        echo "hab => $hab".PHP_EOL;
        echo "val => $val".PHP_EOL;
        echo '-------------------------'.PHP_EOL;
        return "$hab,$val";
    },
    'AAA'
);

print_r($page);


hab => AAA
val => A094190
-------------------------
hab => AAA,A094190
val => 이엘케이
-------------------------
hab => AAA,A094190,이엘케이
val => 2020/05/22
-------------------------
hab => AAA,A094190,이엘케이,2020/05/22
val => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
-------------------------
AAA,A094190,이엘케이,2020/05/22,감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)



$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
);

print_r($res);

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 => 감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
-------------------------
Array
(
    [0] => AA,A0949921,삼성전자,2015/12/25,감사의견 승인
    [1] => AA,A094190,이엘케이,2020/05/22,감사의견 거절(감사범위 제한 및 계속기업 존속능력에 대한 북확실성)
)