본문으로 바로가기

php 를 이용한 array 활용법

category IT/언어 2023. 6. 3. 10:49
반응형
반응형

php 는 자료구조 적인 측면에서는 그렇게 팍팍한 언어는 아닙니다.

그래도 php 를 이용해 데이타를 다룬다면 array(배열) 을 무조건 사용 하는게 좋습니다.

그 중에서 제일 활용도가 높은 array_map , array_filter, array_reduce 를 알아 보겠습니다.

 

기본적인 배열 사용하기

 

아마 대부분 아래와 같이 사용 한다고 알고 있습니다.

<?php
$dummyArray = array("0" => array("subject" => "제목1"),"1" => array("subject" =>"제목2"));

//이것을 html 로 나오게 하려면

$dummyRowPrint = "";

foreach($dummyArray as $dummyRow) {

   $dummyRowPrint .= "<li> {$dummyRow['subject']} </li>";

}

echo $dummyRowPrint;



출력값은 

<li> 제목1 </li><li> 제목2 </li>

이것이 틀린 것은 아니지만 손으로 글씨를 쓰다 보면 너무 많이 쓴다는 느낌을 지울 수 없습니다.

 

이것을 array_map 과 array_reduce  를 이용 하면 더 간다히 할 수 있습니다.

 

array_map 이용하기

 

이것을 array_map 을 이용 하면 아래와 같습니다.

<?php
$dummyArray = array("0" => array("subject" => "제목1"),"1" => array("subject" =>"제목2"));

$dummyRowPrint = array_map(function($dummyRow) { 
   return "<li>{$dummyRow['subject']} </li>";
}
, $dummyArray);



echo implode("",$dummyRowPrint);

출력값은

<li> 제목1 </li><li> 제목2 </li>

 

array_reduce  이용하기

// array_reduce 를 사용 해서 할 수도 있습니다.

<?php
$dummyArray = array("0" => array("subject" => "제목1"),"1" => array("subject" =>"제목1"));

$dummyArrayReduce = array_reduce($dummyArray, function($holder, $item) {
return $holder = $holder . "<li>". $item['subject'] . "</li>";
});
echo ( $dummyArrayReduce);



출력값은

<li> 제목1 </li><li> 제목2 </li>

 

php 에서는 array_map 과 array_reduce 에서 기존 배열 넣는 곳이 달라서 좀 헷갈리긴 하네요.

자바스크립트 랑 맞게 할려면 array_map 의 변수 위치가 이상하게 느껴지기도 하겠네요.

 

array_filter 배우기

다음으로는 의외로 자주 쓰는 array_filter 입니다.

array_filter 는 배열에서 해당 조건에 맞는 배열만 리턴 해 주는 것이다.

리턴 함수에서 true 로 값이 나오는 것만 모아서 따로 배열을 만들어서 리턴 해 준다.

<?php


$dummyArray = array("0" => array("subject" => "제목1","count" => 1),"1" => array("subject" =>"제목1","count" => 2));

$dummyArrayReduce = array_filter($dummyArray, function($item) {
return $item['count'] > 1; // 여기에서 true 조건일때만 새로운 배열에 들어 간다.
});
print_r ( $dummyArrayReduce);

출력값



Array
(
    [1] => Array
        (
            [subject] => 제목1
            [count] => 2
        )

)

 

 

 

위 3 가지는 php 하면 필수로 알아야 하고 아주 자주 쓰이는 것이니 꼭 기억 해야 합니다.

 

 

반응형