[PHP] PHP7 기초 - 3. 배열(Array)

yunulog·2022년 10월 6일
0

PHP7

목록 보기
3/6

서기의 PHP7 강의를 토대로 정리하였습니다!

배열

배열 선언하기

array 함수 이용하여 선언하기
$변수 = array(요소1, 요소2, 요소3, ...);

$a = array(1,2,3);
print_r($a);

→ Array ( [0] => 1 [1] => 2 [2] => 3 )

echo $a[0]; 

→ 1
단, echo로 array 전체 출력은 불가하다.
두번째 코드처럼 배열의 특정 값만 가져올때는 echo 사용 가능


요소 하나하나 할당하여 배열 선언하기

$b[] = 1;
$b[] = 2;
$b[] = 3;
$b[] = 4;
$b[] = 1;
$b[] = 2;
$b[] = 3;
$b[] = 4;
$b[] = 1;
$b[] = 2;
$b[] = 3;
$b[] = 4;
print_r($b);

→ Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 1 [5] => 2 [6] => 3 [7] => 4 [8] => 1 [9] => 2 [10] => 3 [11] => 4 )

배열을 출력하는 방법

배열의 항의 갯수를 구한다.

$c = count($b);

for 문을 이용해서 배열의 항목들을 나열한다.

for($i=0; $i<$c; $i++) {
  echo $b[$i];
  echo "<br>";
}

1
2
3
4
1
2
3
4
1
2
3
4


foreach 함수를 이용하면 더 간편하게 할 수 있다.
아래 예시는 key값과 함께 배열 항목을 나열하는 함수다.

foreach($b as $key=>$c) {
  echo $key;
  echo ":";
  echo $c;
  echo "<br>";
}

0:1
1:2
2:3
3:4
4:1
5:2
6:3
7:4
8:1
9:2
10:3
11:4

다중배열

다중배열 선언하기

배열 안에 배열을 추가한다.
data 배열을 list 배열에 추가한다.

$list = array();

$data['name'] = "홍길동";
$data['subject'] = "문의드립니다.";
$data['memo'] = '동해물과 백두산이 마르고 닳도록';

$list[] = $data;

$data['name'] = "박문수";
$data['subject'] = "이 제품 완전 좋아요.";
$data['memo'] = '동해물과 백두산이 마르고 닳도록';

$list[] = $data;

print_r($list);

Array ( [0] => Array ( [name] => 홍길동 [subject] => 문의드립니다. [memo] => 동해물과 백두산이 마르고 닳도록 ) [1] => Array ( [name] => 박문수 [subject] => 이 제품 완전 좋아요. [memo] => 동해물과 백두산이 마르고 닳도록 ) )

다중배열을 이용하여 표 만들기

다중배열을 표(table)로 만들기 위해 table 태그 안에 php의 for 문을 이용한다.
아래 코드는 for문 안에 표의 내용(td 태그)을 넣어서 다중 배열의 항목 갯수만큼 표 내용(td 태그)을 반복 생성한다.

<table border="1" width="800">
    <tr>
      <th>이름</th>
      <th>제목</th>
      <th>내용</th>
    </tr>

    <?php
      foreach($list as $d) {
    ?>

    <tr>
      <td><?php echo $d['name']?></td>
      <td><?=$d['subject']?></td>
      <td><?=$d['memo']?></td>
    </tr>
  <?php
    }
  ?>
</table>

다음과 같이 출력된다.

  • 아래 두 코드는 같은 내용을 출력한다.

    <?php echo $d['name']?>
    <?=$d['name']?>
    

외부파일을 배열로 읽어오기

우선 data.txt 라는 이름의 텍스트 파일을 생성해보겠다.

홍길동, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동1, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동2, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동3, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동4, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동5, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동6, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동7, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동8, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동9, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록
홍길동10, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록

file 함수를 이용해 외부 파일을 배열로 불러올 수 있다.

$배열명 = file("파일명");
$list = file("7.txt");

print_r($list);

Array ( [0] => 홍길동, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [1] => 홍길동1, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [2] => 홍길동2, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [3] => 홍길동3, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [4] => 홍길동4, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [5] => 홍길동5, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [6] => 홍길동6, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [7] => 홍길동7, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [8] => 홍길동8, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [9] => 홍길동9, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 [10] => 홍길동10, 안녕하세요, 테스트 동해물과 백두산이 마르고 닳도록 )

Explode 함수로 배열 값 쪼개기

explode 함수를 이용하여 배열의 값을 특정 문자를 기준으로 쪼갤 수 있다.

explode(”구분할 문자”, 배열)
<table border="1" width="800">
  <tr>
    <th>이름</th>
    <th>제목</th>
    <th>내용</th>
  </tr>

  <?php
    foreach($list as $d) {
      $str = explode(",",$d);
      // 쉼표(,)를 기준으로 d 배열 값을 쪼갠 결과값을 str로 할당
  ?>

    <tr>
      <td><?=$str[0]?></td>
      <td><?=$str[1]?></td>
      <td><?=$str[2]?></td>
    </tr>

  <?php
    }
  ?>
</table>

다음과 같이 출력된다.

0개의 댓글