반응형
말랑Cow
IT
말랑Cow
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Linux (33)
    • Windows (6)
    • Network (7)
    • Hardware (10)
    • Zabbix (13)
    • python (9)
    • script (0)
    • docker (16)
    • NAS (1)
    • DB (3)
    • php (33)
    • jQuery (1)
    • 정보보안기사 (0)
    • Ajax (1)
    • Javascript (21)
    • DELL (0)
    • HPE (0)
    • Secui (0)
    • AWS (2)
    • Elastic (0)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자빅스
  • CentOS
  • 도커
  • 모니터링
  • 파이썬
  • 네트워크
  • JavaScript
  • php
  • php 클래스
  • Shell
  • bash
  • Python
  • ZABBIX
  • php 객체
  • jQuery
  • 서버
  • 자바스크립트
  • Linux
  • 리눅스
  • docker
hELLO · Designed By 정상우.
말랑Cow

IT

[php 내장함수] 배열 관련 함수
php

[php 내장함수] 배열 관련 함수

2021. 8. 24. 00:00
반응형

배열은 다른 언어에서는 '리스트' 라고도 하는 형태의 데이터 타입 입니다.

 

<?php

$array1 = [
	'Ronaldo' => '호날두",
        'Messi' => '메시"
];

?>

위 같은 배열데이터가 있을 때 Ronaldo, Messi 를 키(Key)라 하고 호날두, 메시를 값이라 합니다.

 

1. 배열에서 키, 값 확인

 

array_key_exists 는 배열에 특정 키를 가지고 있는지를 확인할 때 사용합니다.

array_key_exists(키, 배열)

 

<?php

$data1 = [
    'Ronaldo' => "호날두",
    'Messi' => "메시"
];

var_dump(array_key_exists('Messi', $data1));

?>

위 코드의 결과로 true가 나옴으로써 키값이 있는지에 대해 확인해보았습니다.

 

in_array는 값을 찾을 때 사용합니다.

in_array('값', '배열')
<?php

$data1 = [
    'Ronaldo' => "호날두",
    'Messi' => "메시"
];

var_dump(in_array('호날두', $data1));

?>

 

array_search는 특정한 값을 갖고있는 키를 찾을 때 사용합니다.

array_search('값', '배열')
<?php

$data1 = [
    'Ronaldo' => "호날두",
    'Messi' => "메시"
];

var_dump(array_search('호날두', $data1));

?>

호날두 라는 값을 갖는 키가 Ronaldo 라는 것을 확인할 수 있습니다.

 

array_keys는 배열이 갖고있는 모든 키를 찾을 때 사용합니다.

array_keys('배열')
<?php

$data1 = [
    'Ronaldo' => "호날두",
    'Messi' => "메시"
];

var_dump(array_keys($data1));

?>

$data1 이라는 배열에 대한 키를 확인할 수 있습니다.

결과를 해석해보면, 키는 총 2개이고 0번째 키는 "Ronaldo", 1번째 키는 "Messi" 입니다.

 

array_values는 배열이 갖고있는 모든 값을 찾을 때 사용합니다.

array_values('배열')
<?php

$data1 = [
    'Ronaldo' => "호날두",
    'Messi' => "메시"
];

var_dump(array_values($data1));

?>

위 array_keys와 동일한 기능을 하며 키이거나 값이거나의 차이입니다.

 

2. 배열 변경

 

- array_filter

 

array_filter란 배열데이터에 대해 사용자 정의함수를 통해 필터링을 거쳐 새로운 배열데이터를 만드는 것 입니다.

 

코드로 확인해보겠습니다.

 

<?php

$data1 = [
    'Ronaldo',
    'Messi',
    'Son',
    'Kane',
    'Neymar',
    'Halland'
];

$filter = array_filter($data1, function($val){
    if(strlen($val) <= 5){
        return true;
    }else{
        return false;
    }
});

print_r($filter);

?>

$data1 이라는 배열데이터를 생성하였습니다.

 

array_filter 함수를 통해 $data1을 function($val){} 로 정의한 익명함수 조건으로 새로운 데이터를 $filter에 대입합니다.

 

익명함수의 내용은 $val 의 문자길이가 5 이하면 true, 5를 넘으면 false를 리턴합니다.

$data1 의 배열데이터가 하나씩 $val로 대입되며 true를 반환한 $val 데이터가 $filter로 대입됩니다.

 

문자열이 5 이하인 데이터, 결과는 위와 같습니다.

 

- array_map

 

배열데이터에 원하는 함수를 적용시키고 배열로 반환하는 기능을 합니다.

array_map(함수, 배열데이터1, 배열데이터2 ..)

코드로 보겠습니다.

 

<?php

$data1 = 'Cristiano,Lionel,Heung-min';
$data2 = 'Ronaldo,Messi,Son';

$adata1 = explode(',',$data1);
$adata2 = explode(',',$data2);

function player_name($a, $b){
	return $a.' '.$b;
}

$adata3 = array_map('player_name', $adata1, $adata2);

print_r($adata1);
echo "<br/>";
print_r($adata2);
echo "<br/>";
print_r($adata3);

?>

$data1,2 를 explode를 통해 배열형태로 바꾸어 $adata1,2에 넣었습니다.

player_name 이라는 함수를 만들고 매개변수 $a, $b 그리고 중간에 공백 하나를 합칩니다. 

 

array_map을 통해 player_name 이라는 함수를 이용했고 매개변수의 인자로 $adata1,2를 이용합니다.

 

두 배열데이터가 합쳐진 것을 볼 수 있습니다.

즉, 배열데이터에 함수를 적용시킨 배열데이터 입니다.

 

3. 배열 합치기

 

array_merge(배열데이터1,배열데이터2..)

각 배열데이터를 합해주는 함수입니다.

 

array_intersect(배열1, 배열2...)

괄호안에 있는 배열데이터들의 교집합을 구해줍니다.

 

코드로 보겠습니다.

<?php

$EPL = [
    'Kane' => '케인',
    'Son' => '손흥민',
    'Salah' => '살라',
    'Ronaldo' => '호날두'
];

$LALIGA = [
    'Messi' => '메시',
    'Benzema' => '벤제마',
    'Lee' => '이강인',
    'Ronaldo' => '호날두'
];

$BUNDESLIGA = [
    'Halland' => '홀란드',
    'lewandowski' => '레반도프스키',
    'Ji' => '지동원'
];

$merge = array_merge($EPL, $LALIGA, $BUNDESLIGA);
$intersect = array_intersect($EPL, $LALIGA);

echo "EPL + LALIGA + BUNDESLIGA";
echo "<br/>";
print_r($merge);
echo "<br/>";
echo "<br/>";
echo '<p6>';
echo "EPL + LALIGA 둘 다 포함";
echo '</p6>';
echo "<br/>";
print_r($intersect);

?>

$merge 는 모든 배열데이터를 합쳤고, $intersect는 EPL과 LALIGA 배열에 둘 다 들어있는 교집합을 출력합니다.

 

4. 배열 정렬

 

배열을 정렬하는 여러가지 함수들이 있지만 sort, rsort 두 가지만 정리해보겠습니다.

 

sort : 값을 기준으로 오름차순 정렬

rsort : 값을 기준으로 내림차순 정렬

 

<?php

$EPL = [
    'Kane' => '케인',
    'Son' => '손흥민',
    'Salah' => '살라',
    'Ronaldo' => '호날두'
];

$LALIGA = [
    'Messi' => '메시',
    'Benzema' => '벤제마',
    'Lee' => '이강인',
    'Ronaldo' => '호날두'
];

$BUNDESLIGA = [
    'Halland' => '홀란드',
    'lewandowski' => '레반도프스키',
    'Ji' => '지동원'
];

sort($EPL);
print_r($EPL);
echo "<br/>";

rsort($EPL);
print_r($EPL);
echo "<br/>";

?>

반응형

'php' 카테고리의 다른 글

[php 내장함수] 네트워크 관련 함수  (0) 2021.08.26
[php 내장함수] 파일 관련 함수  (0) 2021.08.25
[php 내장함수] 날짜 관련 함수  (0) 2021.08.23
[php 내장함수] 문자 관련 함수  (0) 2021.08.22
[php 내장함수] 숫자 관련 함수  (0) 2021.08.21
    'php' 카테고리의 다른 글
    • [php 내장함수] 네트워크 관련 함수
    • [php 내장함수] 파일 관련 함수
    • [php 내장함수] 날짜 관련 함수
    • [php 내장함수] 문자 관련 함수
    말랑Cow
    말랑Cow

    티스토리툴바