본문 바로가기
PHP & WP

[PHP] 배열과 자주 쓰는 함수

by 펜네임 2022. 6. 14.

새로 들어온 회사는 PHP와 워드프레스를 기반으로 만들어진 웹사이트와 앱을 서비스한다.

그래서 PHP를 공부하게 되었다.

PHP 문법은 자바스크립트와 비슷한 듯 다른데, 특히 배열의 형태가 굉장히 달라서 특이하다고까지 느껴졌다.

 

 

 

 PHP 배열의 기본형태 

PHP 배열은 기본적으로 아래처럼 생겼다.

자바스크립트에서 익숙하게 사용하던 [] 대신 array()를 쓰려니 너무 비효율적이란 느낌이 들었다.

배열이 중첩되거나 길어지면 읽기도 힘들다.

 

// PHP array를 정의하는 방법 (normal)

$array1 = array();

$array2 = array(
    "foo" => "bar",
    "bar" => "foo",
);

 

그런데 아래와 같이 짧게도 쓸 수 있더라. (기존 소스코드를 아래의 형태로 바꿔주고 있다.)

숏버전은 PHP 5.4부터 사용가능하다.

 

 

// PHP array를 정의하는 방법 (short)

$array = [
    "foo" => "bar",
    "bar" => "foo",
];



 

 

 PHP array 값 추가하기 

1. array_push(배열, 값);

$array = [];

// 키 없는 값을 추가
array_push($array, $value);

// 키 있는 값을 추가
array_push($array[$key], $value);

// 예시
$args = [
	'posts_per_page' => - 1,
	'meta_query' => [
		[
			'key' => 'cw_user_level',
			'value' => 1
		]
	]
];
array_push($args['include'], 100);

 

 


2. $array[] = 값;

array_push()보다 훨씬 빠르다!

// 키 없이 추가
$array[] = $value;

// 키 주고 추가
$array['key'] = $value;

 

 

 

 

 PHP array 값 삭제하기 

$array = [0 => '가', 1 => '나', 2 => '다',];

// 키 없이 삭제
unset($array[0]);

// 배열의 '가' 값이 삭제된다.

//===========================================

$array2 = ['A' => '가', 'B' => '나', 'C' => '다',];

// 키 주고 삭제
unset($array2['B']);

// 배열의 '나' 값이 삭제된다.

 

 

 

 

 배열끼리 비교하기 

  • 연산자 == 를 사용하면 각 배열에 같은 키 & 같은 값 한 쌍이 있는지 확인한다.

  • 연산자 === 를 사용하면  각 배열에 같은 키 & 같은 값 한 쌍이 있는지 확인하고,
    추가로 배열된 순서와 키/값의 자료형까지 확인한다.

  • array_diff() 를 사용하여 두 배열의 차이점을 확인한다. 차집합 배열을 반환한다.

  • array_intersect() 를 사용하여 두 배열의 공통점을 확인한다. 교집합 배열을 반환한다.

 

 

 


 

 자주 쓰는 배열 함수 

// 배열 안의 요소 갯수 세기

count($array);

 

 

// 배열의 특정 요소를 맨 끝으로 보내기

$my_array = ['gorila','monkey','bunny'];	// 배열

$temp = $my_array['monkey'];	// 1. 임시 변수에 뒤로 보낼 요소를 저장
unset($my_array['monkey']);	// 2. 배열에서 뒤로 보낼 요소를 제거한다
$my_array['monkey'] = $temp;	// 3. 배열에 저장해뒀던 요소를 다시 넣는다

 

 

 

 배열 자료형 변환 함수 

// 배열을 json 형태로 바꾸기

json_encode($array);

출력 시 : $array = ["1", "2", "3", "Orange"]

 

// 배열을 문자열로 (array to string)

$array_fruits = [1, 2, 3];
$string_fruits = implode(',', $array_fruits);

여러 요소로 이루어진 배열을 하나의 문자열로 바꿀 때,

implode()의 첫번째 파라미터에는 각 요소 사이에 넣을 구분자를 넣는다.

예시에서는 쉼표(,)를 넣어줬기 때문에 $string_fruits는 "1,2,3" 형태의 문자열이 된다.

 

 

// 문자열을 배열로 (string to array)

$string_fruits = "1,2,3";
$array_fruits = explode(',', $string_fruits);

문자열 하나를 여러개의 요소가 담긴 배열로 바꿀 때, 

explode()의 첫번째 파라미터에는 각 요소 사이에 들어있는 구분자를 넣는다.

예시에서는 쉼표(,)를 넣어줬기 때문에 쉼표마다 멈추고 그 자리까지의 요소를 잘라온다.

$array_fruits 는 1과 2와 3이 담긴 배열이 된다.

 

 

 

 

댓글