홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP 배열 함수 정리
6년 전
function pre($val){    
        echo '<pre>';    
        print_r($val);    
        echo  '</pre>';    
}  
  
/*
배열생성
array
array = array(mixed)
http://php.net/manual/en/function.array.php
*/  
$arr = array(1,2,3,4,5,6);  
pre($arr);  
$arr = array('a'=>'apple','b'=>'banana','c'=>'cherry');  
pre($arr);  
$arr = array('one',5=>'two','three');  
pre($arr);  
$arr = array(1,3,2=>8,4,0=>6);  
pre($arr);  
$arr = array('a'=>'apple','b'=>'banana','c'=>'cherry','d'=>array('do'=>array('dol'=>'dolphin','dou'=>'double'),'dr'=>'dragon','du'=>'duck','dw'=>'dwarf'));  
pre($arr);  
  
/*
배열의 원소를 변수에 할당
list
array = list(mixed)
http://php.net/manual/en/function.list.php
*/  
$alphabet = array('apple','banana','coffee','dance','elf');  
list($red,$yellow,$brown,,$game) = $alphabet;  
echo $game;  
  
/*
배열에서 포인터가 가리키는 원소의 키와 값을 가져와 배열로 반환
each
array = each(array_&$array)
http://php.net/manual/en/function.each.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
pre(each($food));  
reset($food);  
while (list($key, $val) = each($food)) {  
    echo "$key => $val" . "  
";  
}  
  
/*
연관배열로부터 현재 포인터가 가리키는 원소의 키를 반환
key
mixed = key(array_&$array)
http://php.net/manual/en/function.key.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
while ($fruit_name = current($food)) {  
    if ($fruit_name == 'banana') {  
        echo key($food).'  
';  
    }  
    next($food);  
}  
  
/*
배열로부터 현재 포인터가 가리키는 원소의 값을 반환
current, pos
mixed = current(array_&$array)
http://php.net/manual/en/function.current.php
http://php.net/manual/en/function.pos.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
var_dump(current($food));  
  
/*
배열의 포인터를 다음 원소로 이동
next
mixed = next(array_&$array)
http://php.net/manual/en/function.next.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
var_dump(next($food));  
  
/*
배열의 포인터를 처음으로 이동
reset
mixed = reset(array_&$array)
http://php.net/manual/en/function.reset.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
var_dump(reset($food));  
  
/*
배열의 포인터를 이전 원소로 이동
prev
mixed = prev(array_&$array)
http://php.net/manual/en/function.prev.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
var_dump(prev($food));  
  
/*
배열의 포인터를 끝으로 이동
end
mixed = end(array_&$array)
http://php.net/manual/en/function.end.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish');  
var_dump(end($food));  
  
/*
배열에 값이 존재하는지 확인
in_array
bool = in_array(mixed_needle, array_haystack)
http://php.net/manual/en/function.in-array.php
*/  
$food = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish', 'g'=>array('ginger','grape'));  
if (in_array("banana", $food)) {  
    echo "Got Banana";  
}  
if (in_array(array('ginger','grape'), $food, true)) {  
    echo "Got G Food";  
}  
  
/*
배열이 가진 원소의 갯수를 반환
count, sizeof
int = count(mixed_array_or_countable)  
http://php.net/manual/en/function.count.php
http://php.net/manual/en/function.sizeof.php
*/  
$food = array('apple', 'banana', 'c'=>'cherry', 'd'=>'dragon', 'e'=>'egg', 'f'=>'fish', 'g'=>array('gi'=>'ginger','gr'=>'grape'));  
echo count($food, COUNT_RECURSIVE); // 9  
echo sizeof($food); // 7  
for ($i = 0; $i < count($food); $i++)  
{  
echo $food[$i];  
}  
  
/*
인자로 지정한 영역의 문자 또는 숫자로 구성된 배열을 생성
range
array = range(mixed_start, mixed_end)
http://php.net/manual/en/function.range.php
*/  
$arr = range(0,10);  
$arr = range(0,100,2);  
$arr = range('a','h');  
$arr = range('z','o');  
foreach ($arr as &$value)  
{  
echo $value;  
}  
  
/*
배열안 원소들의 순서를 섞는다
shuffle
bool = shuffle(array_&array)
http://php.net/manual/en/function.shuffle.php
*/  
$numbers = range(1, 20);  
shuffle($numbers);  
foreach ($numbers as $number) {  
    echo "$number / ";  
}  
  
/*
배열을 정렬
sort
bool = sort(array_&array)
http://php.net/manual/en/function.sort.php
SORT_REGULAR
SORT_NUMERIC
SORT_STRING
SORT_LOCALE_STRING
SORT_NATURAL
SORT_FLAG_CASE
*/  
$food = array('pizza', 'banana', 'cake', 'apple', 'grape', 'fish', 'egg', 100, 200, 101, 10, 22);  
sort($food, SORT_NATURAL | SORT_FLAG_CASE);  
foreach ($food as $key => $val) {  
    echo "food[" . $key . "] = " . $val;  
}  
  
/*
배열의 키를 기준으로 정렬
ksort
bool = ksort(array_&array)
http://php.net/manual/en/function.ksort.php
*/  
$fruits = array('d'=>'lemon', 'a'=>'orange', 'c'=>'banana', 'b'=>'apple');  
ksort($fruits);  
foreach ($fruits as $key => $val) {  
    echo "$key = $val ";  
}  
  
/*
배열의 키를 유지한채 정렬
asort
bool = asort(array_&array)
http://php.net/manual/en/function.asort.php
*/  
$number = array(123,321,88,23,11,15);  
asort($number);  
foreach ($number as $key => $val) {  
    echo "\$number[$key] = $val ";  
}  
  
/*
배열을 거꾸로 정렬
rsort
bool = rsort(array_&array)
http://php.net/manual/en/function.rsort.php
*/  
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");  
rsort($fruits);  
foreach ($fruits as $key => $val) {  
    echo "$key = $val ";  
}  
  
/*
배열의 키를 유지한채 거꾸로 정렬
arsort
bool = arsort(array_&array)
http://php.net/manual/en/function.arsort.php
*/  
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");  
arsort($fruits);  
foreach ($fruits as $key => $val) {  
    echo "$key = $val ";  
}  
  
/*
배열의 키를 기준으로 거꾸로 정렬
krsort
bool = krsort(array_&array)
http://php.net/manual/en/function.krsort.php
*/  
$fruits = array("a"=>"lemon", "d"=>"orange", "c"=>"banana", "b"=>"apple");  
krsort($fruits);  
foreach ($fruits as $key => $val) {  
    echo "$key = $val ";  
}  
  
/*
알고리즘을 이용하여 배열을 정렬
natsort
bool = natsort(array_&array)
http://php.net/manual/en/function.natsort.php
*/  
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");  
  
asort($array1);  
echo "Standard sorting";  
print_r($array1); // img1 img10 img12 img2  
  
natsort($array2);  
echo "Natural order sorting";  
print_r($array2); // img1 img2 img10 img12  
  
echo "Negative numbers";  
$negative = array('-5','3','-2','0','-1000','9','1');  
print_r($negative);  
natsort($negative);  
print_r($negative); // -2 -5 -1000 0 1 3 9  
  
echo "Zero padding";  
$zeros = array('09', '8', '10', '009', '011', '0');  
print_r($zeros);  
natsort($zeros);  
print_r($zeros); // 0 8 009 09 10 011  
  
echo "Other characters interfering";  
$images_oops = array('image_1.jpg','image_12.jpg', 'image_21.jpg', 'image_4.jpg');  
print_r($images_oops);  
natsort($images_oops);  
print_r($images_oops); // 1 4 12 21  
  
echo "Sort by keys";  
$smoothie = array('orange' => 1, 'apple' => 1, 'yogurt' => 4, 'banana' => 4);  
print_r($smoothie);  
uksort( $smoothie, 'strnatcmp');  
print_r($smoothie); // apple 1 banana 4 orange 1 yogurt 4  
  
/*
알고리즘을 이용하여 대소문자 구분없이 배열을 정렬
natcasesort
bool = natcasesort(array_&array)
http://php.net/manual/en/function.natcasesort.php
*/  
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');  
  
sort($array1);  
echo "Standard sorting";  
print_r($array1); // IMG0 IMG3 img1 img10 img12 img2  
  
natcasesort($array2);  
echo "Natural order sorting (case-insensitive)";  
print_r($array2); // IMG0 img1 img2 IMG3 img10 img12  
  
/*
배열에서 맨끝 원소를 제거
array_pop
mixed = array_pop(array_&array)
http://php.net/manual/en/function.array-pop.php
*/  
$stack = array("orange", "banana", "apple", "raspberry");  
$fruit = array_pop($stack);  
pre($stack);  
  
/*
배열의 맨끝에 원소를 추가
array_push
int = array_push(array_&array, mixed_value1, ...)
http://php.net/manual/en/function.array-push.php
*/  
$stack = array("orange", "banana");  
array_push($stack, "apple", "raspberry");  
pre($stack);  
  
/*
배열에서 맨앞 원소를 제거
array_shift
mixed = array_shift(array_&array)
http://php.net/manual/en/function.array-shift.php
*/  
$stack = array("orange", "banana", "apple", "raspberry");  
$fruit = array_shift($stack);  
pre($stack);  
  
/*
배열의 맨앞에 원소를 추가
array_unshift
int = array_unshift(array_&array, mixed_value1, ...)
http://php.net/manual/en/function.array-unshift.php
*/  
$queue = array("orange", "banana");  
array_unshift($queue, "apple", "raspberry");  
pre($queue);  
  
/*
배열에서 중복된 원소를 제거
array_unique
array = array_unique(array_array)
http://php.net/manual/en/function.array-unique.php
*/  
$input = array("a" => "green", "red", "b" => "green", "blue", "red");  
$result = array_unique($input);  
pre($result); // a green 0 red 1 blue  
  
$input = array(4, "4", "3", 4, 3, "3");  
$result = array_unique($input);  
var_dump($result); // array(2) { [0]=> int(4) [2]=> string(1) "3" }  
  
/*
배열의 인덱스를 반환
array_values
array = array_values(array_array)
http://php.net/manual/en/function.array-values.php
*/  
$array = array("size" => "XL", "color" => "gold");  
pre(array_values($array)); // 0 XL 1 gold  
  
/*
배열의 키를 반환
array_keys
array = array_keys(array_array, mixed_search_value)
http://php.net/manual/en/function.array-keys.php
*/  
$array = array(0 => 100, "color" => "red");  
pre(array_keys($array)); // 0 0 1 color  
  
$array = array("blue", "red", "green", "blue", "blue");  
pre(array_keys($array, "blue")); // 0 0 1 3 2 4 blue 에 대한 키만 반환  
  
$array = array("color" => array("blue", "red", "green"),  
               "size"  => array("small", "medium", "large"));  
pre(array_keys($array)); // 0 color 1 size  
  
/*
배열의 원소를 역순으로 정렬하여 반환
array_reverse
array = array_reverse(array_array)
http://php.net/manual/en/function.array-reverse.php
*/  
$input  = array("php", 4.0, array("green", "red"));  
$reversed = array_reverse($input);  
$preserved = array_reverse($input, true);  
// true 하면 키를 보존하면서 역순으로 반환  
  
pre($input);  
pre($reversed);  
pre($preserved);  
  
/*
배열에서 하나 이상 원소를 랜덤하게 추출하여 반환
array_rand
mixed = array_rand(array_array, int_numreq)
http://php.net/manual/en/function.array-rand.php
*/  
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");  
$rand_keys = array_rand($input, 2);  
// 2 가져올 원소 수, 기본값은 1  
echo $input[$rand_keys[0]];  
echo $input[$rand_keys[1]];  
  
/*
지정한 길이만큼 특정 값으로 배열 채우기
array_pad
array = array_pad(array_array, int_size, mixed_value)
http://php.net/manual/en/function.array-pad.php
*/  
$input = array(12, 10, 9);  
$result = array_pad($input, 5, 0);  
pre($result); // 12, 10, 9, 0, 0  
$result = array_pad($input, -7, -1);  
pre($result); // -1, -1, -1, -1, 12, 10, 9  
$result = array_pad($input, 2, "noop");  
pre($result); // 12 10 9  
  
/*
특정값으로 배열채우기
array_fill
array = array_fill(int_start_index, int_num)
http://php.net/manual/en/function.array-fill.php
*/  
$a = array_fill(5, 6, 'banana');  
$b = array_fill(-2, 3, 'pear');  
pre($a);  
pre($b);  
  
/*
배열의 각 원소에 미리 정의한 함수를 적용
array_walk
bool = array_walk(array_&array, callable_callback)
http://php.net/manual/en/function.array-walk.php
*/  
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");  
  
function test_alter(&$item1, $key, $prefix)  
{  
    $item1 = "$prefix: $item1";  
}  
  
function test_print($item2, $key)  
{  
    echo "$key. $item2";  
}  
  
echo "Before ...:";  
array_walk($fruits, test_print);  
  
echo "... and after:";  
array_walk($fruits, test_alter, 'fruit');  
array_walk($fruits, test_print);  
  
/*
배열의 각 원소에 미리 정의한 함수를 적용. 이때 배열의 원소가 또 다른 배열을 포함한 경우에는 해당 배열에 대해서도 지정한 함수를 호출
array_walk_recursive
bool = array_walk_recursive(array_&array, callable_callback)
http://php.net/manual/en/function.array-walk-recursive.php
*/  
$sweet = array('a' => 'apple', 'b' => 'banana');  
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');  
  
function test_print($item, $key)  
{  
    echo "$key holds $item  
";  
}  
  
array_walk_recursive($fruits, test_print);  
  
  
/*
여러개의 배열을 하나의 배열로 합침
array_merge
array = array_merge(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-merge.php
*/  
$array1 = array("color" => "red", 2, 4);  
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);  
$result = array_merge($array1, $array2);  
//키가 숫자일 경우 다른 숫자로 재부여 된다  
//변수+배열도 가능 array_merge((array)"foo", $array1, $array2);  
pre($result);  
  
/*
여러개의 배열을 하나의 배열로 합치되 문자열 키가 동일한 원소가 여러개 존재하는 경우 이들키를 갖는 모든 원소를 배열에 함께 병합
array_merge_recursive
array = array_merge_recursive(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-merge-recursive.php
*/  
$array1 = array("color" => array("favorite" => "red"), 5);  
$array2 = array(10, "color" => array("favorite" => "green", "blue"));  
$result = array_merge_recursive($array1, $array2);  
pre($result); // red 와 green 이 favorite 배열에 함께 들어감  
  
/*
다른 배열에는 없는 원소만으로 구성된 배열을 반환
array_diff
array = array_diff(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-diff.php
*/  
$array1 = array("a" => "green", "red", "blue", "red");  
$array2 = array("b" => "green", "yellow", "red");  
$result = array_diff($array1, $array2);  
pre($result); // 1 blue  
  
/*
다른 배열에는 없는 원소만으로 구성된 배열을 반환. 키와 값이 모두 일치하는 원소만을 제거한 나머지 원소를 배열로 반환
array_diff_assoc
array = array_diff_assoc(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-diff-assoc.php
*/  
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");  
$array2 = array("a" => "green", "yellow", "red");  
$result = array_diff_assoc($array1, $array2);  
pre($result); // b brown c blue 0 red  
  
/*
다른 배열에는 없는 키를 갖는 원소만으로 구성된 배열을 반환
array_diff_key
array = array_diff_key(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-diff-key.php
*/  
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);  
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);  
pre(array_diff_key($array1, $array2)); // red 2 purple 4  
  
/*
다른 모든 배열에도 존재하는 원소만으로 구성된 배열을 반환
array_intersect
array = array_intersect(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-intersect.php
*/  
$array1 = array("a" => "green", "red", "blue");  
$array2 = array("b" => "green", "yellow", "red");  
$result = array_intersect($array1, $array2);  
pre($result); // a green 0 red  
  
/*
키와 값이 모두 일치하는 원소중에서 모든 배열에 존재하는 원소만으로 구성된 배열을 반환
array_intersect_assoc
array = array_intersect_assoc(array_array1, array_array2, ...)
http://php.net/manual/en/function.array-intersect-assoc.php
*/  
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");  
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");  
$result_array = array_intersect_assoc($array1, $array2);  
pre($result_array); //a green  
  
/*
배열에 지정한 이름의 키를 갖는 원소가 존재하는지 검사
array_key_exists
bool = array_key_exists(mixed_key, array_array)
http://php.net/manual/en/function.array-key-exists.php
*/  
$search_array = array('first' => null, 'second' => 4);  
if (array_key_exists('first', $search_array)) {  
    echo "The 'first' element is in the array";  
}  
isset($search_array['first']); // false , NULL 이므로  
array_key_exists('first', $search_array); // true  
  
/*
주어진 값으로 배열을 검사하고 만일 존재하면 해당 원소의 키를 반환
array_search
mixed = array_search(mixed_needle, array_haystack)
http://php.net/manual/en/function.array-search.php
*/  
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');  
$key = array_search('green', $array); // 2;  
$key = array_search('red', $array);   // 1;  
  
/*
배열의 모든 문자열 키를 대문자 또는 소문자로 바꿈
array_change_key_case
array = array_change_key_case(array_array, int_case)
http://php.net/manual/en/function.array-change-key-case.php
CASE_UPPER
CASE_LOWER
*/  
$input_array = array("FirSt" => 1, "SecOnd" => 3);  
pre(array_change_key_case($input_array, CASE_UPPER));  
  
/*
배열의 각 원소에 사용자가 정의한 함수를 적용하고 적용한 후의 결과를 배열로 반환
array_map
array = array_map(callable_callback, array_array1, ...)
http://php.net/manual/en/function.array-map.php
*/  
  
// 1 8 27 64 125  
function cube($n)  
{  
    return($n * $n * $n);  
}  
$a = array(1, 2, 3, 4, 5);  
$b = array_map(cube, $a);  
pre($b);  
  
// 2 4 6 8 10  
$func = function($value) {  
    return $value * 2;  
};  
pre(array_map($func, range(1, 5)));  
  
// uno dos tres cuatro cinco  
function show_Spanish($n, $m)  
{  
    return("The number $n is called $m in Spanish");  
}  
function map_Spanish($n, $m)  
{  
    return(array($n => $m));  
}  
$a = array(1, 2, 3, 4, 5);  
$b = array("uno", "dos", "tres", "cuatro", "cinco");  
$c = array_map(show_Spanish, $a, $b);  
pre($c);  
$d = array_map(map_Spanish, $a , $b);  
pre($d);  
  
// 1 one uno, 2 two dos, 3 three tres, ...  
$a = array(1, 2, 3, 4, 5);  
$b = array("one", "two", "three", "four", "five");  
$c = array("uno", "dos", "tres", "cuatro", "cinco");  
$d = array_map(null, $a, $b, $c);  
pre($d);  
  
// stringkey value, 0 value  
$arr = array("stringkey" => "value");  
function cb1($a) {  
    return array ($a);  
}  
function cb2($a, $b) {  
    return array ($a, $b);  
}  
pre(array_map(cb1, $arr));  
pre(array_map(cb2, $arr, $arr));  
pre(array_map(null, $arr));  
pre(array_map(null, $arr, $arr));  
  
/*
배열에 있는 원소의 합을 계산하여 반환
array_sum
number = array_sum(array_array)
http://php.net/manual/en/function.array-sum.php
*/  
$a = array(2, 4, 6, 8);  
echo "sum(a) = " . array_sum($a); // 20  
  
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);  
echo "sum(b) = " . array_sum($b); //6.9
추천추천 : 249 추천 목록
번호 제목
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.