|
 |
15년 전 |
array
(PHP 3, PHP 4, PHP 5 )
array -- 배열을 생성한다
설명
array array ( [mixed ...])
매개변수의 배열을 반환한다. 매개변수는 => 연산자를 통해 인덱스가 주어질수 있다. 배열이 무엇인지에 대한 더 자세한 정보는 배열 타입에 관한 섹션을 참고한다.
참고: array()는 리터럴 배열을 표현하기 위해 사용되는 언어 구조이지, 일반적인 함수가 아니다.
"index => values" 구문은 콤마(,)로 구분되고, 인덱스와 값을 정의한다. 인덱스는 문자열이나 숫자형이 될수 있다. 인덱스가 생략되면, 0부터 시작되는 정수 인덱스가 자동적으로 생성된다. 인덱스가 정수이면, 다음에 생성되는 인덱스는 더 큰 정수 index + 1 이 될것이다. 두개의 동일한 인덱스가 생성되었을 경우, 마지막 값이 처음 값을 덮어쓰게 된다는 것에 주의한다.
다음 예제 코드는 2차원 배열을 생성하는 방법, 연관배열에 대한 키를 설정하는 방법, 일반적인 배열의 숫자 인덱스를 건너뛰는 방법을 보여준다.
예 1. array() 예제코드
<?php
$fruits = array (
"fruits" => array ("a"=>"orange", "b"=>"banana", "c"=>"apple"),
"numbers" => array (1, 2, 3, 4, 5, 6),
"holes" => array ("first", 5 => "second", "third")
)
?>
예 2. array()의 자동적인 인덱스
<?php
$array = array( 1, 1, 1, 1, 1, 8=>1, 4=>1, 19, 3=>13);
print_r($array);
?>
다음을 보여준다:
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 13
[4] => 1
[8] => 1
[9] => 19
)
인덱스 '3'이 두번 정의되었고, 마지막 값인 13이 유지된다는 것에 유의한다. 인덱스 4는 인덱스 8 이후에 정의되었고, 더 큰 인덱스가 8이기 때문에, 다음에 생성된 인덱스( 값 19)는 9가 된다.
This example creates a 1-based array. 이 예제코드는 1-베이스 배열을 생성한다.
예 3. array()의 1-베이스 인덱스
<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>
다음을 보여준다:
Array
(
[1] => January
[2] => February
[3] => March
)
array_pad(), list(), foreach, range() 참고.
list
(PHP 3, PHP 4, PHP 5 )
list -- 배열처럼 변수들을 지정한다
설명
void list ( mixed ...)
array()처럼, 이 함수는 실제 함수가 아니고 언어 구조이다. list()는 한번의 조작으로 배열 목록을 지정하기 위해 사용된다.
참고: list()는 숫자 배열에서만 작동하고 0부터 시작하는 숫자 인덱스로 가정한다.
예 1. list() 예제코드
<?php
$info = array('coffee', 'brown', 'caffeine');
// 모든 변수를 목록화한다
list($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";
// 그들중 일부를 목록화한다
list($drink, , $power) = $info;
print "$drink has $power.\n";
// 또는 세번째 값으로만 건너띈다
list( , , $power) = $info;
print "I need $power!\n";
?>
예 2. list()의 사용예
<table>
<tr>
<th>Employee name</th>
<th>Salary</th>
</tr>
<?php
$result = mysql_query ("SELECT id, name, salary FROM employees",$conn);
while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
print (" <tr>\n".
" <td><a href=\"info.php?id=$id\">$name</a></td>\n".
" <td>$salary</td>\n".
" </tr>\n");
}
?>
</table>
주의
list()는 가장 우측 매개변수에서 시작하는 값들을 지정한다. 일반적인 변수들을 사용하면, 이 동작에 대해서 신경 쓸 필요가 없다. 그러나 인덱스를 갖는 배열에서 사용한다면 왼쪽에서 오른쪽으로 list()에서 쓰여진것과 같이 배열안의 인덱스 순서로 되는것이라고 보통 기대할수 있으나, 그렇지 않다. 역순으로 지정이 된다.
예 3. 배열 인덱스를 사용하는 list() 사용예
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
다음과 같이 출력된다 (이 원소들의 순서는 list() 문법안에서 쓰여진 순서와 대비된다는 것에 주의.):
array(3) {
[2]=>
string(8) "caffeine"
[1]=>
string(5) "brown"
[0]=>
string(6) "coffee"
}
each(), array() extract() 참고.
each
(PHP 3, PHP 4 , PHP 5)
each -- 배열에서 현재의 키와 값 쌍을 반환하고 배열 커서를 전진시킨다
설명
array each ( array array)
array 배열에서 현재의 키와 값 쌍을 반환하고 배열 커서를 전진시킨다. 이 키/값 쌍은 4개 원소를 갖는 배열을 반환한다. 0, 1, key, value 이다. 원소 0과 key는 배열 원소의 키 이름을 포함하고, 1과 value는 데이터를 포함한다.
배열의 내부 포인터가 배열의 끝을 벗어나면, each()는 FALSE를 반환한다.
예 1. each() 예제코드
<?php
$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);
print_r($bar);
?>
$bar는 현재 다음과 같은 key/value 쌍을 포함한다:
Array
(
[1] => bob
[value] => bob
[0] => 0
[key] => 0
)
<?php
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
print_r($bar);
?>
$bar는 현재 다음과 같은 key/value 쌍을 포함한다:
Array
(
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
each()는 배열을 사용하기 위해 일반적으로 list()와 같이 사용한다. 예제코드는 다음과 같다:
예 2. each()로 배열 사용하기
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset ($fruit);
while (list ($key, $val) = each ($fruit)) {
echo "$key => $val\n";
}
/* Outputs:
a => apple
b => banana
c => cranberry
*/
?>
each()가 수행되면, 배열 커서는 배열의 다음 원소로 옮겨지거나, 배열의 끝인 경우에는 마지막 원소를 통과한다. each를 사용하여 다시 배열을 사용하려면 reset()을 사용해야 한다.
경고
배열을 다른 변수로 지정하는 것은 원래의 배열 포인터를 초기화 하는것이기 때문에, 위 예제코드는 루프안에서 $fruit를 다른 변수로 지정하게 되면 무한 루프를 유발할수 있다.
key(), list(), current(), reset(), next(), prev(), foreach 참고.
sizeof
sizeof -- count()의 별칭
설명
이 함수는 count()의 별칭이다.
count
(PHP 3, PHP 4 , PHP 5)
count -- 변수의 원소 갯수를 구한다
설명
int count ( mixed var [, int mode])
일반적으로 array 인 var 안의 원소 갯수를 반환한다. (그외의 것은 한개의 원소를 갖기 때문이다)
var 가 배열이 아니면, 1 을 반환한다 (예외: count(NULL) 는 0과 같다).
참고: 선택적인 mode 매개변수는 PHP 4.2.0부터 사용가능하다.
선택적인 mode 매개변수가 COUNT_RECURSIVE (또는 1)으로 설정되면, count() 는 재귀적으로 배열을 카운트한다. 이 매개변수는 특별히 다차원 배열의 모든 원소를 셀때 유용하다. mode의 기본값은 0이다.
경고
count()는 설정되지 않은 배열에 대해서 0을 반환할것이나, 빈 배열로 초기화된 변수에 대해서도 0을 반환할것이다. 변수가 설정되었는지 확인하기 위해서 isset()을 사용한다.
PHP에서 배열이 어떻게 구현되고 어떻게 사용되는지에 대한 자세한 설명을 보기 위해서 배열 섹션을 참고한다.
예 1. count() 예제코드
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count ($b);
// $result == 3;
?>
예 2. 재귀적인 count() 예제코드(PHP >= 4.2.0)
<?php
$food = array( 'fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard','pea'));
// recursive count
echo count($food,COUNT_RECURSIVE); // output 8
// normal count
echo count($food); // output 2
?>
참고: sizeof() 함수는 count()에 대한 별칭 이다.
is_array(), isset(), strlen() 참고.
next
(PHP 3, PHP 4 , PHP 5)
next -- 배열의 내부 배열 포인터를 전진시킨다
설명
mixed next ( array array)
내부 배열 포인터에 의해 가리켜진 다음 위치의 배열 값을 반환하거나, 더이상 원소가 존재하지 않으면 FALSE를 반환한다.
next()는 current()와 비슷하게 동작하지만 한가지 차이를 갖고 있다. 원소값을 반환하기 전에 내부 배열 포인터를 한칸 다음으로 전진시킨다. 이 말은 다음 배열 값을 반환하고 내부 배열 포인터를 한칸 전진시킨다는 뜻이다. 내부 배열 포인터를 전진시켜서 원소 목록의 끝을 벗어나면 next()는 FALSE를 반환한다.
주의
배열의 비어있는 원소를 갖고 있거나, 0의 키값을 갖는 원소를 갖고 있으면, 이 함수는 이 원소들에 대해서도 FALSE를 반환한다. 비어있는 원소나 0의 키값을 갖을지도 모르는 배열을 효율적으로 사용하려면 each() 함수를 사용하도록 한다.
예 1. next()의 사용예와 관련 함수
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>
current(), end(), prev(), reset() 참고.
prev
(PHP 3, PHP 4 , PHP 5)
prev -- 내부 배열 포인터를 앞으로 돌린다
설명
mixed prev ( array array)
내부 배열 포인터에 의해 가리켜지는 이전 위치의 배열 값을 반환하거나, 더이상의 원소가 없으면, FALSE를 반환한다.
주의
배열이 비어있는 원소를 갖는다면 이 함수는 이 원소들에 대해서도 FALSE를 반환할것이다. 빈 원소를 포함할수도 있는 배열을 효율적으로 사용하기 위해서는 each() 함수를 참고하도록 한다.
prev()는 내부 배열 포인터가 앞으로 전진하는 대신에 뒤로 돌린다는 것을 제외하고 next()와 비슷하게 동작한다.
예 1. prev()의 사용예와 관련 함수
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>
current(), end(), next(), reset() 참고.
end
(PHP 3, PHP 4 , PHP 5)
end -- 내부 배열 포인터를 마지막 원소를 가리키게 한다
설명
mixed end ( array array)
end()는 array의 내부 포인터를 마지막원소로 이동시키고 마지막 원소의 값을 반환한다.
예 1. 단순한 end() 예제코드
<?php
$fruits = array('apple','banana','cranberry');
print end($fruits); // cranberry
?>
current(), each(), next(), reset() 참고.
sort
(PHP 3, PHP 4 , PHP 5)
sort -- 배열을 정렬한다
설명
void sort ( array array [, int sort_flags])
이 함수는 배열을 정렬한다. 이 함수가 수행되면 원소들은 작은 값에서 큰 값으로 정렬될것이다.
예 1. sort() 예제코드
<?php
$fruits = array ("lemon", "orange", "banana", "apple");
sort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
echo "fruits[".$key."] = ".$val."\n";
}
?>
위 예제코드는 다음을 출력한다:
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
fruits 는 알파벳순으로 정렬되었다.
선택적인 두번째 sort_flags 매개변수는 이 값들을 사용하여 정렬방법을 변경하는데 사용된다:
정렬 방법 플래그:
•SORT_REGULAR - 통상적인 방법으로 원소를 비교
•SORT_NUMERIC - 수치적으로 원소를 비교
•SORT_STRING - 문자열로 원소를 비교
참고: 두번째 매개변수는 PHP 4에서 추가되었다.
arsort(), asort(), ksort(), natsort(), natcasesort(), rsort(), usort(), array_multisort(), uksort() 참고.
|
|
추천 : 418 |
추천
목록
|
|