[php] 배열관련 함수
배열관련 함수
이 함수는 다양한 방법으로 배열을 다루고, 상호작용할 수 있게 해 준다. 배열은 변수들의 집합을 소팅, 처리, 조정하는데 필수적이다.
일차원및 다차원 배열의 사용이 가능하며, 사용자나 다른 함수로 부터 생성될 수 있다.
데이터베이스의 쿼리문으로 부터 배열의 생성을 위한 몇몇 특별한 데이터베이스 핸들링 함수가 있고 몇몇 함수들은 리턴값으로 배열을 반환한다.
is_array(), explode(), implode(), split() 그리고 join()을 참조하라.
- array_change_key_case -- Returns an array with all string keys lowercased or uppercased
- array_chunk -- Split an array into chunks
- array_count_values -- 배열 값의 수를 센다.
- array_diff_assoc -- Computes the difference of arrays with additional index check
- array_diff -- 배열의 차이을 계산한다.
- array_fill -- Fill an array with values
- array_filter -- Filters elements of an array using a callback function
- array_flip -- Flip all the values of an array
- array_intersect_assoc -- Computes the intersection of arrays with additional index check
- array_intersect -- 배열의 중복을 계산한다.
- array_key_exists -- Checks if the given key or index exists in the array
- array_keys -- 배열의 모든 키값을 반환한다.
- array_map -- Applies the callback to the elements of the given arrays
- array_merge_recursive -- 재귀적으로 두개 혹은 그 이상의 배열을 병합한다.
- array_merge -- 두개 혹은 그 이상의 배열을 병합한다.
- array_multisort -- 여러개의 배열 혹은 다차원 배열을 정렬한다.
- array_pad -- 주어진 값의 길이만큼 배열을 채운다
- array_pop -- 배열 끝의 요소를 뽑아낸다.
- array_push -- 배열 끝에 하나 혹은 그 이상의 원소를 넣는다.
- array_rand -- 배열에서 하나 혹은 그 이상의 임의의 원소를 가져온다.
- array_reduce -- Iteratively reduce the array to a single value using a callback function
- array_reverse -- 각 엘리먼트를 역순으로 정렬한 배열을 반환한다.
- array_search -- Searches the array for a given value and returns the corresponding key if successful
- array_shift -- 배열의 맨 앞에 있는 원소를 꺼내고 그 원소를 삭제한다
- array_slice -- 배열의 일부를 추출한다.
- array_splice -- 배열의 일부를 삭제하고, 그 위치에 다른 내용을 끼워 넣는다.
- array_sum -- Calculate the sum of values in an array.
- array_unique -- 배열로부터 중복된 값을 제거한다.
- array_unshift -- 배열의 맨 앞에 한 개나 그 이상의 원소를 첨가한다.
- array_values -- 배열의 모든 값들을 반환한다.
- array_walk -- 배열의 개개의 원소에 특정 함수를 적용하여 수행한다.
- array -- 배열을 생성한다
- arsort -- 배열을 역순으로 정렬하고 인덱스의 상관관계를 유지한다.
- asort -- 배열을 정렬하고 index association을 유지한다.
- compact -- 주어진 여러 변수의 이름과 값을 가지는 배열을 만든다.
- count -- 배열 변수의 원소 개수를 구한다.
- current -- 배열의 현재 원소를 돌려준다
- each -- 배열로부터 다음원소의 키와 값 쌍을 반환한다. Return the next key and value pair from an array
- end -- Set the internal pointer of an array to its last element
- extract -- Import variables into the symbol table from an array
- in_array -- Return TRUE if a value exists in an array
- key -- Fetch a key from an associative array
- krsort -- Sort an array by key in reverse order
- ksort -- Sort an array by key
- list -- Assign variables as if they were an array
- natcasesort -- Sort an array using a case insensitive "natural order" algorithm
- natsort -- Sort an array using a "natural order" algorithm
- next -- Advance the internal array pointer of an array
- pos -- Get the current element from an array
- prev -- Rewind the internal array pointer
- range -- Create an array containing a range of integers
- reset -- Set the internal pointer of an array to its first element
- rsort -- Sort an array in reverse order
- shuffle -- Shuffle an array
- sizeof -- Get the number of elements in an array
- sort -- Sort an array
- uasort -- Sort an array with a user-defined comparison function and maintain index association
- uksort -- Sort an array by keys using a user-defined comparison function
- usort -- Sort an array by values using a user-defined comparison function
배열에 값을 넣거나 뺄때 사용하는 함수
array_fill(0, 12, '');
배열 생성시 기본값을 채운다.
$arr = array_fill(0, 12, '');
// 0번째부터 12개의 인자값에 '' 을 채운 배열 생성
array_shift
배열에서 첫번째 인자값을 삭제하고 그 값을 리턴한다.
$arr = ['apple', 'banana', 'mango', 'cherry', 'lemon'];
$v = array_shift($arr);
## 결과
$v: apple
$arr: ['banana', 'mango', 'cherry', 'lemon'];
array_pop
배열의 마지막 인자값을 삭제하고 그 값을 리턴한다.
$arr = ['apple', 'banana', 'mango', 'cherry', 'lemon'];
$v = array_pop($arr);
## 결과
$v: lemon
$arr: ['apple', 'banana', 'mango', 'cherry'];
array_unshift
배열의 처음에 값을 넣는다.
$arr = ['apple', 'banana', 'mango', 'cherry', 'lemon'];
array_unshift($arr, 'strawberry');
## 결과
$arr: ['strawberry', 'apple', 'banana', 'mango', 'cherry', 'lemon'];
array_push
배열의 마지막에 값을 넣는다.
$arr = ['apple', 'banana', 'mango', 'cherry', 'lemon'];
array_push($arr, 'strawberry');
## 결과
$arr: ['apple', 'banana', 'mango', 'cherry', 'lemon', 'strawberry'];
배열을 합칠때 사용하는 함수
array_merge
두개 혹은 그 이상의 배열을 병합한다.
즉 키값이 동일하면 뒤에 오는 배열이 overwrite 된다.
$arr1 = ['a'=>'aa', 'b'=>'bb'];
$arr2 = ['d'=>'dd', 'e'=>'ee','b'=>'bbb'];
array_merge($arr1, $arr2);
## 결과
['a'=>'aa', 'b'=>'bbb', 'd'=>'dd', 'e'=>'ee']
$arr1 = ['a'=>['a1'=>'a11', 'a2'=>'a22', 'a4'=>'a44'], 'b'=>'bb'];
$arr2 = ['d'=>'dd', 'e'=>'ee','a'=>['a1'=>'a111', 'a2'=>'a223', 'a3'=>'a333']];
array_merge($arr1, $arr2);
## 결과
['a'=>['a1'=>'a111', 'a2'=>'a223', 'a3'=>'a333'], 'd'=>'dd', 'e'=>'ee']
array_merge_recursive
재귀적으로 두개 혹은 그 이상의 배열을 병합한다. 즉 키값이 동일하면 새로운 배열(sub demension) 이 생성된다..
$arr1 = ['a'=>'aa', 'b'=>'bb'];
$arr2 = ['d'=>'dd', 'e'=>'ee','b'=>'bbb'];
array_merge_recursive($arr1, $arr2);
## 결과
['a'=>'aa', 'b'=>['bb', 'bbb'], 'd'=>'dd', 'e'=>'ee']
array_replace_recursive
키값이 동일하면 overwrite 되는데 sub demension까지 처리한다.
$arr1 = ['a'=>['a1'=>'a11', 'a2'=>'a22', 'a4'=>'a44'], 'b'=>'bb'];
$arr2 = ['d'=>'dd', 'e'=>'ee','a'=>['a1'=>'a111', 'a2'=>'a223', 'a3'=>'a333']];
array_replace_recursive($arr1, $arr2);
## 결과
['a'=>['a1'=>'a111', 'a2'=>'a223', 'a3'=>'a333'], 'd'=>'dd', 'e'=>'ee']
array_replace
특정 키값이 주어질때는 array_merge 와 동일하다.
하지만 키값이 주어지지 않을때는 차이가 난다.
$arr1 = ['a'=>'a11', 'b'=>'bb'];
$arr2 = ['d'=>'dd', 'e'=>'ee', 'a'=>'a111'];
array_replace($arr1, $arr2);
array_merge($arr1, $arr2);
## 결과는 동일
[a'=>'a111', 'b'=>'bb', 'd'=>'dd', 'e'=>'ee']
$arr1 = ['aa', 'bb'];
$arr2 = ['cc', 'dd', 'ee'];
## 결과
array_merge : ['aa', 'bb', 'cc', 'dd', 'ee']
array_replace : ['cc', 'dd', 'ee']
배열에서 특정값들만 가져올때
array_values
배열에서 값만 가져올때
$arr = ['2002'=>120, '2003'=>169, '2004'=>89];
array_values($arr);
## 결과
[120, 169, 89]
array_keys
배열에서 키만 가져올때
$arr = ['2002'=>120, '2003'=>169, '2004'=>89];
array_keys($arr);
## 결과
['2002', '2003', '2004'];
array_column
다차원 배열에서 특정 키의 값만 가져온다.
$arr = [['2002'=>120, '2003'=>169], ['2002'=>150, '2003'=>69]];
array_column($arr, '2002');
## 결과
[120, 150];