반응형
반응형
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 하면 필수로 알아야 하고 아주 자주 쓰이는 것이니 꼭 기억 해야 합니다.
반응형
'IT > 언어' 카테고리의 다른 글
php 와 redis 를 이용한 대용량 mysql 데이타베이스 캐싱 하기 (0) | 2023.07.12 |
---|---|
php 애플(apple) sns 연동하기 (0) | 2023.06.05 |
firebase 를 이용해서 간단한 소셜 안드로이드 앱 만들어 보기 (4) | 2016.06.01 |
안드로이드 asynctask 정리 (0) | 2016.03.23 |
크롬에서 프레임으로 쌓여진 사이트 뒤로가기 버튼 새로고침 현상 일어 날때. (0) | 2016.03.16 |