배열은 다른 언어에서는 '리스트' 라고도 하는 형태의 데이터 타입 입니다.
<?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 |