티스토리 뷰

반응형

php, 배열선언 배열에 값넣기 등 배열관련 정보

 

일반적으로 배열이란 무엇인가?
배열은 '여러개의 값을 담아 놓는 상자'라고 생각하시면 됩니다. 

배열로 선언하면 값이 없어도 배열이 됩니다. 

또한 배열 선언과 동시에 값을 대입하는 것도 가능합니다.

$days = []; // 빈 배열 $days 선언  -> 이렇게 선언하는 것이 가장 편하더군요.

$family = ['dad', 'mom', 'son', 'daughter'];  // 값이 있는 배열 $family 선언 (이렇게는 잘 하지 않아요.ㅠ.ㅠ)

배열의 첨자
배열 요소의 위치를 첨자라고 합니다. 첨자는 보통 연속되는 값으로 0,1,2..로 이어집니다. 

이러한 첨자로 배열에 바로 접근이 가능하게 됩니다.

// 첨자는 0, 1, 2, 3
$family = ['dad', 'mom', 'son', 'daughter'];

echo $family[0]; // 'dad'

echo $family[3]; // 'daughter'


이름으로 접근이 가능한 연상 배열
첨자 대신 요소의 이름(key)을 지정하여 접근 할 수도 있습니다.

$family_name = [
    'dad' => 'Bob',
    'mom' => 'Jessy',
    'son' => 'James',
    'daughter' => 'Emily'
];

echo $family_name['dad']; // 'Bob'
요소의 추가
마지막에 요소를 추가
배열의 제일 끝에 새로운 요소를 추가합니다.

//첨자 배열의 경우 
$family = ['dad', 'mom', 'son', 'daughter'];

$family[] = 'puppy'; // 배열의 제일 끝에 요소를 추가

echo $family[4]; // 'puppy'   -> 계속 추가할때는 이렇게 사용하는 것이 좋네요.


// 연상 배열의 경우
$family_name = [
    'dad' => 'Bob',
    'mom' => 'Jessy',
    'son' => 'James',
    'daughter' => 'Emily'
];

$family_name['puppy'] = 'John';

echo $family_name['puppy']; // 'John'
가장 첫 위치에 요소를 추가
배열의 가장 첫 위치에 요소를 추가할 경우는 array_unshift()를 사용합니다.

$family = ['dad', 'mom', 'son', 'daughter'];

array_unshift($family, 'grandma');

// $family ['grandma', 'dad', 'mom', 'son', 'daughter'] 로 됩니다.
임의의 위치 요소를 추가
배열의 임의의 위치에 요소를 끼워넣습니다. array_splice()는 원래 요소를 치환하는 함수이지만, 제3인수에 0을 지정하면 요소를 지우지 않고 끼워넣을 수 있습니다.

$family = ['dad', 'mom', 'son'];

// $family[2]의 앞에'uncle'를 추가
array_splice($family, 2, 0, 'uncle');

// ['dad', 'mom', 'uncle', 'son']
복수의 요소를 추가
array_push() 함수를 사용하여 한번에 여러개의 요소를 추가합니다.

$family = ['dad', 'mom', 'son'];
array_push($family, 'puppy', 'citty');

// ['dad', 'mom', 'son', 'puppy', 'citty']
array_merge() 함수를 사용하면 배열과 배열을 결합합니다.

$family = ['dad', 'mom', 'son'];
$add_member = ['grandma', 'grandpa'];

$new_family = array_merge($add_member, $family);

// $new_family는 ['grandma', 'grandpa', 'dad', 'mom', 'son']
//array_merge는 원래의 배열 $family에 영향을 주지 않습니다.

**다차원 배열은 첨자를 하나이상 2중으로 사용하는 것이라고 생각하면 될거예요.

$families = [
    [
        'dad', 'mom', 'son'
    ],
    [
        'dad', 'mom', 'daughter'
    ]
];

echo $families[0][0]; // 'dad'  -> 이런 형태가 다차원 배열이죠.

echo $families[1][2]; // 'daughter'

// $families['Smith']와 $families['Williams']는 각각 배열입니다.
물론 연상 배열을 다차원 배열로 할 수도 있습니다.

$families = [
    'Smith' => [
        'dad' => 'Bob',
        'mom' => 'Jessy',
        'son' => 'James'
    ],
    'Williams' => [
        'dad' => 'Michael',
        'mom' => 'Jessy',
        'daughter' => 'Emily'
    ]
];

echo $families['Smith']['dad']; // 'Bob'
여기서는 $families['Smith']['mom']의 'Jessy'와 $families['Williams']['mom']의 'Jessy'는 문자열은 같지만 다른 배열입니다. 즉, 스미스 가문의 제시와 윌리엄 가문의 제시로 보시면 됩니다. 

배열을 잘 이용하면 프로그램 코딩을 줄일 수 있습니다. php는 다른 언어와 다르게 배열이 특이성이 있지요.

이점을 유념하지 않으면 많은 오류와 부딪히게 될 것입니다.

배열의 선언부터 활용까지 잘 되시길 기원합니다.

반응형
댓글