오늘은 PHP 공부 6번째 시간으로, C언어 보다 강력한 배열에 대해 따로 공부를 해보도록 하겠다.
PHP는 배열을 통해 빠른 속도로 데이터 접근 및 처리할 수 있도록 다양한 방법론을 제공한다.
간략하게 PHP에서의 배열 사용법에 대해 정리 해 보자.
1. 연관 배열
- map과 같은 형태로 index혹은 key로 값을 참조할 수 있도록 지원한다.
- 연관 배열 사용 예
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $html['title'] = "My web page"; $html['body'] = "... body of web page ..."; echo $html['title'] . "<br>"; echo $html['body'] . "<br><br>"; $p2 = array( 'copier' => "Copier & Multipurpose", 'inkjet' => "Inkjet Printer", 'laser' => "Laser Printer", 'photo' => "Photographic Paper"); echo "p2 element: " . $p2['inkjet']. "<br>"; ?> | cs |
- 실행 결과
2. foreach ... as 루프
- 배열을 위한 특별한 반복문. 배열 아이템 개수를 알 필요 없이 처음부터 마지막 아이템까지 탐색할 수 있다.
- foreach ... as 사용 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php echo "[Example1]<br>"; $paper = array("Copier", "Inkjet", "Laser", "Photo"); $j = 0; foreach($paper as $item){ echo "$j : $item<br>"; ++$j; } echo "<br>[Example2]<br>"; $product = array('copier' => "Copier & Multipurpose", 'inkjet' => "Inkjet Printer", 'laser' => "Laser Printer", 'photo' => "Photographic Paper"); foreach($product as $item => $description) { echo "$item: $description<br>"; } ?> | cs |
- 실행 결과
3. 다차원 배열
- 하나의 배열이 다른 배열을 일부분처럼 포함하고, 이것을 계속 반복하면서 다차원 배열을 정의할 수 있다.
- 다차원 연관 배열 생성의 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php $products = array( 'paper' => array( 'copier' => "Copier & Multipurpose", 'inkjet' => "Inkjet Printer", 'laser' => "Laser Printer", 'photo' => "Photographic Paper"), 'pens' => array ( 'ball' => "Ball Point", 'hilite' => "Highlighters", 'marker' => "Markers"), 'misc' => array( 'tape' => "Sticky Tape", 'glue' => "Adhesives", 'clips' => "Paperclips") ); echo "<pre>"; foreach($products as $section => $items) { foreach($items as $key => $value) { echo "$section: \t$key\t($value)<br>"; } } echo "</pre>" ?> | cs |
- 실행 결과
4. 배열 함수
1) is_array
- 어떤 변수가 배열인지 확인이 필요할 경우 사용할 수 있는 함수.
1 2 3 4 | <?php $sample = array(1,2,3,4,5); echo is_array($sample) ? "Is an array" : "Is NOT an array"; ?> | cs |
2) count
- 배열의 원소 개수를 반환하는 함수.
1 2 3 4 5 6 7 8 9 10 11 | <?php $sample1 = array(1,2,3,4,5); echo count($sample1) . "<br>"; $sample2 = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); echo count($sample2, 0) . "<br>"; echo count($sample2, 1) . "<br>"; ?> | cs |
3) sort
- 정렬된 원소를 포함하는 새로운 배열을 반환하지 않고 원본 배열을 직접 수정한다.
- sort 사용 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php $sample = array(5,2,3,1,4); foreach($sample as $value) { echo "$value "; } echo "<br>"; sort($sample, SORT_NUMERIC); echo "<br>[After Sort]<br>"; foreach($sample as $value) { echo "$value "; } echo "<br>"; rsort($sample, SORT_NUMERIC); echo "<br>[After r-sort]<br>"; foreach($sample as $value) { echo "$value "; } ?> | cs |
- 실행 결과
4) shuffle
- 배열의 원소를 무작위로 섞어 놓는다.
1 2 3 4 | <?php $sample = array(1, 2, 3, 4, 5); shuffle($sample); ?> | cs |
5) explode
- 문자열을 특정 기준에 따라 단어 단위로 배열에 저장해 주는 함수
- explode 사용 예제
1 2 3 4 5 6 7 | <?php $sample = explode('***', "A***sentence***with***asterisks"); print_r($sample); echo "<br>"; $sample2 = explode(' ', "This is a sentence with seven words"); print_r($sample2); ?> | cs |
- 실행 결과
6) extract
- 연관 배열의 key값에 해당하는 변수를 생성하여 값을 저장해 주는 함수.
- extract 사용 예제
1 2 3 4 5 6 7 8 9 10 11 | <?php $sample = array( 'fname'=>"Doctor", 'sname'=>"Who", 'planet'=>"Gallifrey", 'system'=>"Gridlock" ); extract($sample, EXTR_PREFIX_ALL, 'extract'); echo $extract_planet; ?> | cs |
- 실행 결과
7) compact
- extract의 반대 역할을 한다.
- compact 사용 예제
1 2 3 4 5 6 7 8 | <?php $fname = "Doctor"; $sname = "Who"; $planet = "Gallifrey"; $system = "Gridlock"; $contact = compact('fname', 'sname', 'planet', 'system'); print_r($contact); ?> | cs |
- 실행 결과
이상으로 PHP의 배열에 대한 정리를 마무리 하겠다.
'제대로알자, SW > 웹 프로그래밍' 카테고리의 다른 글
Django를 활용한 Python 웹 프로그래밍 (2) - 개발 환경 설정 (0) | 2017.08.01 |
---|---|
Django를 활용한 Python 웹 프로그래밍 (1) - 개념 정리 (2) | 2017.08.01 |
웹 프로그래밍 입문(5) PHP 클래스 및 객체 (0) | 2017.07.04 |
웹 프로그래밍 입문(4) PHP 함수 (0) | 2017.07.03 |
웹 프로그래밍 입문(3) - PHP 기본 문법 (0) | 2017.06.30 |