배열 변수를 생성할 수 있습니다. 또한 배열을 여러 개의 변수로 분할 하여 처리를 할 수도 있습니다. 배열을 변수화 하여 데이터를 처리하는 것은 배열을 활용하는데 매우 유용합니다.
배열 변수를 생성하기 위해서는 데이터의 값을 배열타입으로 저장을 하면 됩니다. 배열타입의 값을 초기에 성성을 하기 위해서는 array() 함수를 이용합니다.
|내부함수| 배열생성 array array ([ mixed $… ] )
내부함수 array()는 입력된 값에 대한 배열데이터를 반한합니다. 각각의 데이터는 콤마(,)로 구분하면 키를 삽입을 할때는 => 기호를 같이 사용을 합니다.
예제파일) array-01.php <?php // 배열 변수를 생성합니다. // 입력한 값에 대한 배열 값을 반환 합니다. $arr1 = array(“hojin”,”jiny”,”james”,”eric”);
// 배열값을 foreach 를 통하여 하나씩 출력을 합니다.
foreach ($arr1 as $value) {
echo "$value <br>";
}
echo "===== <br>";
// 키형태의 배열을 지정합니다.
$arr2 = array('firstname' => "hojin", 'lastname' => "lee" );
foreach ($arr2 as $key => $value) {
echo "{$key} => {$value} ";
print_r($arr);
}
?>
화면출력) hojin jiny james eric ===== firstname => hojin lastname => lee
배열은 값의 묽음처리 입니다. 묽음 형태의 배열을 처리하는 것은 유사한 데이터를 처리하는데 있어서 많은 변수의 명을 통하여 자원을 낭비하는 것을 줄이기 위해서 입니다.
|내부함수| 배열의 변수화 array list ( mixed $var1 [, mixed $… ] )
하지만 반대로 배열을 여러 개의 변수로 분할 할 수 있습니다. 내부함수 list()는 배열의 값을 지정한 각각의 변수에 값을 할당할 수 있습니다. 배열의 데이터를 여러 개의 변수에 분배하여 저장을 할 때 편리합니다.
예제파일) array-02.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
// 배열의 값을 각각의 변수에 값을 매칭하여 대입합니다.
list($orage, $apple, $grape) = $arr;
echo "변수 orage = $orage <br>";
echo "변수 apple = $apple <br>";
echo "변수 grape = $grape <br>";
echo "<br> ===== <br><br>";
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
}
?>
화면출력) 변수 orage = orage 변수 apple = apple 변수 grape = grape ===== 0==>orage 1==>apple 2==>grape
|내부함수| array array_fill ( int $start_index , int $num , mixed $value )
내부함수 array_fill()는 지정한 값으로 배열 채우기 합니다. 지정한 값을 배열의 시작위치(start_index) 부터 반복횟수(num) 만큼 반복하여 배열을 생성합니다.
예제파일) array-03.php <?php $a = array_fill(5, 6, ‘aaa’); $b = array_fill(-2, 4, ‘bbb’); print_r($a); print_r($b); ?>
화면출력) Array ( [5] => aaa [6] => aaa [7] => aaa [8] => aaa [9] => aaa [10] => aaa ) Array ( [-2] => bbb [0] => bbb [1] => bbb [2] => bbb )
|내부함수| array array_fill_keys ( array $keys , mixed $value )
내부함수 array_fill_keys()는 입력받은 배열의 값을 키 값으로 사용하여 배열의 데이터를 채우기 합니다.
예제파일) array-04.php <?php $keys = array(‘foo’, 5, 10, ‘bar’); $a = array_fill_keys($keys, ‘banana’); print_r($a); ?>
화면출력) Array ( [foo] => banana [5] => banana [10] => banana [bar] => banana )
PHP는 다양한 형태의 최신 배열표기 및 처리를 지원합니다. 일반배열과 키값을 가지고 있는 연상배열 모두를 사용할 수 있습니다. 내부함수 each() 함수는 배열의 키와 값을 한쌍으로 반한홥니다. list() 함수와 결합하여 배열의 키와 값을 추출할 수 있습니다.
|내부함수| 배열의 쌍값 array each ( array &$array )
배열이 담긴 each() 함수를 호출할때마다 다음 배열 위치로 전달됩니다.
예제파일) array-05.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
$test = each($arr);
echo "원소 0= ".$test[0]."<br>";
echo "원소 1= ".$test[1]."<br>";
echo "원소 key= ".$test[key]."<br>";
echo "원소 value= ".$test[value]."<br>";
echo "<br><br>";
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
}
?>
화면출력) 원소 0= 0 원소 1= orage 원소 key= 0 원소 value= orage
1==>apple 2==>grape
위의 실습에서 배령의 키와 값을 추울하여 봅니다. 첫번째 명령에서 1번, 반복문에서 2번 실행되어 총 3개의 배열 정보가 출력됩니다. each() 함수는 4가지의 키값으로 데이터를 반환하는데 0, key 와 1, value 입니다.
연상배열에서 값만 추출한 다른 배열을 생성할 수있습니다. 내부함수 array_values() 는 배열의 값을 반환합니다.
|내부함수| 배열 값 array array_values ( array $array )
예제파일) array-06.php
<?php
// 배열을 생성합니다.
$arr = array(‘firstname’ => “hojin”, ‘lastname’ => “lee” );
while(list($key,$val) = each($arr)){
echo $key. “==>” .$val. “, “;
}
echo “
====
”;
$arr2 = array_values($arr);
while(list($key,$val) = each($arr2)){
echo $key. "==>" .$val. ", ";
} ?>
화면출력) firstname==>hojin, lastname==>lee, ==== 0==>hojin, 1==>lee,
|내부함수| 배열 인덱스키 array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )
내부함수 array_keys()는 배열의 인덱스 키 이름만을 반환 받을 수 있습니다.
예제파일) array-07.php <?php $arr = array(‘firstname’ => “hojin”, ‘lastname’ => “lee” ); $index = array_keys($arr);
while(list($key,$val) = each($index)){
echo $key. "==>" .$val. "<br>";
} ?>
화면출력) 0==>firstname 1==>lastname
|내부함수| array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
내부함수 array_column()는 입력된 다중 배열에서 단일 열에서 값 만을 추출하여 배열로 반환합니다.
예제파일) array-08.php <?php $records = array( array( ‘id’ => 2135, ‘first_name’ => ‘홍’, ‘last_name’ => ‘길동’, ), array( ‘id’ => 3245, ‘first_name’ => ‘이’, ‘last_name’ => ‘호진’, ), array( ‘id’ => 5342, ‘first_name’ => ‘장’, ‘last_name’ => ‘승빈’, ) );
$first_names = array_column($records, ‘last_name’); print_r($first_names); ?>
화면출력) Array ( [0] => 길동 [1] => 호진 [2] => 승빈 )
|내부함수| array array_flip ( array $array )
내부함수 array_flip()는 배열의 키와 값을 서로 교환합니다. array_flip ()은 배열의 키가 값이 됩니다. 값은 다시 배열의 키로 변경을 하여 배열로 처리합니다.
예제파일) array-09.php <?php $input = array(“a”=>”oranges”, “b”=>”apples”, “c”=>”pears”); $flipped = array_flip($input);
print_r($flipped); ?>
화면출력) Array ( [oranges] => a [apples] => b [pears] => c )
내부함수 compact()는 외부의 변수명을 응용하여 배열을 생성할 수 있습니다. 변수명은 키값으로 사용됩니다.
|내부함수| 변수 배열생성 array compact ( mixed $varname1 [, mixed $… ] )
예제파일) array-10.php <?php
$one = "하나";
$two = "두개";
$three = "세개";
$four = "네게";
// 배열에 변수의 값을 넣기 위해서는 "" 로 변수명을 입력 하면 됩니다.
$num = array("three", "four");
// 배열을 넣을때는 배열명만 인수로 전달 합니다.
$arr = compact("one", "two", $num);
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
}
?>
화면출력) one==>하나 two==>두개 three==>세개 four==>네게
|내부함수| 배열 변수화 int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )
내부함수 extract()는 배열의 키이름으로 각각 변수화 합니다. compact() 함수의 반대기능입니다.
예제파일) array-11.php <?php $arr = array(“blue”=>”파랑색”,”red”=>”발강색”,”black”=>”검정색”);
// 배열을 변수로 생성합니다.
extract($arr);
echo "blue = ".$blue ."<br>";
echo "red = ".$red ."<br>";
echo "black = ".$black ."<br>"; ?>
화면출력) blue = 파랑색 red = 발강색 black = 검정색
내부함수 array_merge()는 입력되는 배열을 하나의 배열 형태로 결합하여 반환을 합니다.
|내부함수| 배열결합 array array_merge ( array $array1 [, array $… ] )
예제파일) array-12.php <?php $arr1 = array(‘지니’, ‘호진’); $arr2 = array(‘철수’, ‘영수’); $arr3 = array(‘제니퍼’, ‘홍길동’);
$arr = array_merge($arr1, $arr2, $arr3);
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
}
?>
화면출력) 0==>지니 1==>호진 2==>철수 3==>영수 4==>제니퍼 5==>홍길동
|내부함수| 재귀적 배열결합 array array_merge_recursive ( array $array1 [, array $… ] )
두 개 이상의 배열을 재귀적으로 병합합니다. 내부함수 array_merge_recursive ()는 다수의 배열 요소를 병합하여 배열의 끝에 추가합니다.
병합될 배열에 동일한 문자열 키가있는 경우 이러한 키의 값은 배열로 병합됩니다. 이는 재귀적으로 수행되므로 값 중 하나가 배열 자체이면 함수는 해당 항목과 병합합니다. 그리고 배열에 동일한 숫자 키가 있으면 나중에 값이 원래 값을 덮어 쓰지 않고 뒤에 추가됩니다.
예제파일) array-13.php <?php $ar1 = array(“color” => array(“favorite” => “red”), 5); $ar2 = array(10, “color” => array(“favorite” => “green”, “blue”)); $result = array_merge_recursive($ar1, $ar2);
print_r($result); ?>
화면출력) Array ( [color] => Array ( [favorite] => Array ( [0] => red [1] => green ) [0] => blue ) [0] => 5 [1] => 10 )
|내부함수| 배열결합 (키/값) array array_combine ( array $keys , array $values )
내부함수 array_combine()는 첫번재 배열을 키값으로, 두번째 배열을 값 형태로 배열을 결합합니다.
예제파일) array-14.php <?php $a = array(‘green’, ‘red’, ‘yellow’); $b = array(‘avocado’, ‘apple’, ‘banana’);
// $a 배열은 키명으로 사용고, $b는 데이터로 사용합니다.
// 두개의 배열을 연상배열 형태로 결합니다.
$arr = array_combine($a, $b);
print_r($arr); ?>
화면출력) Array ( [green] => avocado [red] => apple [yellow] => banana )
|내부함수| 일부배열 분리 array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
내부함수 array_slice()는 배열의 일부분의 요소만을 추출하여 반환합니다.
예제파일) array-15.php <?php // 배열을 생성합니다. $arr = array(‘하나’, ‘둘’, ‘셋’, ‘넷’, ‘다섯’, ‘여섯’, ‘일곱’, ‘여덟’, ‘아홉’, ‘열’);
// 첫번째 인자: 추출 시작값 // 처음 2부터 끝까지. $slice = array_slice($arr, 2);while(list($key,$val) = each($slice)){
echo $key. "==>" .$val. ", ";
}
echo "<br>";
// 두번째 인자: 추출 데이터 갯수
// 처음 1부터, 3개의 데이터를 추출
$slice = array_slice($arr, 1,3);
while(list($key,$val) = each($slice)){
echo $key. "==>" .$val. ",";
}
echo "<br>";
// 처음 인자가 음수이면 끝에서 -인자 수터 시작하여 , 두번째 인자 갯수를 추출
// 마지막 -5 위치부터(여섯), 3개의 데이터를 추출
$slice = array_slice($arr, -5,3);
while(list($key,$val) = each($slice)){
echo $key. "==>" .$val. ",";
}
?>
화면출력) 0==>셋, 1==>넷, 2==>다섯, 3==>여섯, 4==>일곱, 5==>여덟, 6==>아옵, 7==>열, 0==>둘,1==>셋,2==>넷, 0==>여섯,1==>일곱,2==>여덜,
|내부함수| array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
내부함수 array_chunk()는 배열을 크기 요소가있는 배열로 분할합니다. 마지막 chunk는 크기 요소보다 작은 요소를 포함 할 수 있습니다.
예제파일) array-16.php
<?php
$array = array(‘a’, ‘b’, ‘c’, ‘d’, ‘e’);
print_r(array_chunk($array, 2));
echo “
”;
print_r(array_chunk($array, 3));
echo "<br>"; ?>
화면출력) Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e ) ) Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e ) )
내부함수 array_reverse()는 배열의 내용을 역순으로 출력합니다.
|내부함수| 역순배열 array array_reverse ( array $array [, bool $preserve_keys = false ] )
예제파일) array-17.php <?php $arr = array(“hojin”,”jiny”,”james”,”eric”); $reverse = array_reverse($arr);
while(list($key,$val) = each($reverse)){
echo $key. "==>" .$val. "<br>";
}
?>
화면출력) 0==>eric 1==>james 2==>jiny 3==>hojin
내부함수 array_push()는 배열의 마지막 위치에 새로운 원소 데이터를 추가합니다.
|내부함수| 배열 원소추가(마지막) int array_push ( array &$array , mixed $value1 [, mixed $… ] )
예제파일) array-18.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
// $arr 배열에 두개의 원소를 추가합니다.
array_push($arr, 'banana', 'tomato');
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
} ?>
화면출력) 0==>orage 1==>apple 2==>grape 3==>banana 4==>tomato
|내부함수| 배열 원소제거 mixed array_pop ( array &$array )
내부함수 array_pop()은 배열의 마지막 요소 하나를 제거합니다. 이는 데이터처리 알고리즘 pop 과 유사합니다.
예제파일) array-19.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
// 마지막 배열 원소를 삭제 합니다.
$temp = array_pop($arr);
echo "배열에서 마지막 $temp 요소 하나를 제거합니다.<br> ";
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
} ?>
화면출력) 배열에서 마지막 grape 요소 하나를 제거합니다. 0==>orage 1==>apple
|내부함수| 배열 원소추가(처음) int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )
내부함수 array_unshift()는 배열 앞쪽에 새로운 원소를 추가합니다.
예제파일) array-20.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
// $arr 배열에 두개의 원소를 추가합니다.
array_unshift($arr, 'banana', 'tomato');
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
} ?>
화면출력) 0==>banana 1==>tomato 2==>orage 3==>apple 4==>grape
|내부함수| 배열 원소제거(처음) mixed array_shift ( array &$array )
내부함수 array_shift()는 배열의 맨 처음 요소 하나를 제거합니다. 배열을 좌측으로 하나 밀어서 제거하는 형태 입니다.
예제파일) array-21.php <?php // 배열을 생성합니다. $arr = array(‘orage’, ‘apple’, ‘grape’);
// 배열 원소를 삭제 합니다.
$temp = array_shift($arr);
echo "배열에서 처음 $temp 요소 하나를 제거합니다.<br> ";
while(list($key,$val) = each($arr)){
echo $key. "==>" .$val. "<br>";
} ?>
화면출력) 배열에서 처음 orage 요소 하나를 제거합니다. 0==>apple 1==>grape
|내부함수| 일부배열 삭제 array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] )
내부함수 array_splice()는 일부분의 데이터를 삭제한 후에 값을 반환합니다.
예제파일) array-22.php
<?php
// 배열을 생성합니다.
$arr = array(‘하나’, ‘둘’, ‘셋’, ‘넷’, ‘다섯’, ‘여섯’, ‘일곱’, ‘여덜’, ‘아옵’, ‘열’);
echo “원본
”;
while(list($key,$val) = each($arr)){
echo $key. “==>” .$val. “, “;
}
echo “
”;
while(list($key,$val) = each($slice)){
echo $key. "==>" .$val. ", ";
}
echo "를 삭제하였습니다.<br>";
echo "<br>";
$slice = array_splice($arr, 3,3);
while(list($key,$val) = each($slice)){
echo $key. "==>" .$val. ", ";
}
echo "를 삭제하였습니다.<br>";
echo "<br>";
?>
화면출력) 원본 0==>하나, 1==>둘, 2==>셋, 3==>넷, 4==>다섯, 5==>여섯, 6==>일곱, 7==>여덜, 8==>아옵, 9==>열,
0==>여덜, 1==>아옵, 2==>열, 를 삭제하였습니다.
0==>넷, 1==>다섯, 2==>여섯, 를 삭제하였습니다.