2차원 배열
페이지 정보
작성자 서방님 댓글 0건 조회 65회 작성일 12-05-15 16:12본문
배열 입니다. 배열은 가장 중요한 기본 이기도 하구요. 왼쪽에 PHP메뉴얼에도 있구요.
변수 는 집..
배열은 아파트 1채
2차원 배열은 아파트 10동 으로 생각 하시면 됩니다 ^^
2차원 배열은 한진 아파트 1동에 101 호 처럼 2개를 사용합니다.
아파트 그림 그려 보세용 ^^ 멋진 아파트가 떠오른다...떠오른다....ㅋㅋㅋ
한진 아파트 1동에 101호에는 투덜이가 살고,
한진 아파트 1동에 201호에는 투덜걸즈가 살고,
한진 아파트 2동에 101호에는 곰팅님이 살고,
한진 아파트 2동에 201호에는 피비린내님이 산다면요...그 걸 PHP로 표현 한다면 아래 처럼 되겟죠 ^^
$hanjin[1][101]="투덜이";
$hanjin[1][201]="투덜걸즈";
$hanjin[2][101]="곰팅";
$hanjin[2][201]="피비린내";
array() 로 표현 할 수도 있구요 ^^
아래 예제를 여러번 테스트 해보시면 list() 와 foreach() 와 2차원 배열에 대해서 빠삭하게 아실 수
있을 것 입니다. ^^
그렇다면 3차원 배열은 멀 생각 해야 할까요 ?
ㅋㅋㅋ
---------------------------------------------------------------------
array() 를 사용하여 2차원 배열을 사용하는 예 입니다.
아래 예는
$users[ ][ ]=" ";
로 설정 한 것과 같죠 ^^
<?
//=====================================================
// 2차원 배열 사용하기 !
// made by tood.net 2001년 12월 17일 이른 새벽
//=====================================================
$users = array(
"이영무 광성고 전산부 KSCC 92"=> array(
"이름" => "이영무",
"주소" => "서울",
"나이" => "30",
"몸무게" => "68"
),
"육철호 신상명세" => array(
"이름" => "육철호",
"주소" => "인천",
"나이" => "33",
"몸무게" => "76"
)
);
while ( list($username, $subarray) = each($users) ) {
echo " ** 이름: $username: ";
echo "<P>";
while ( list($key, $val) = each($subarray) ) {
echo "<br> $key : $val\n";
}
echo "<P>";
}
?>
list(키,값)=each(배열)
배열 값을 받아서 키와 값으로 분리하는 것임다.
$a[3]="ddd";
여기서 3 이 키고, ddd 가 값이죠 ^^
list 로 검색해보세용 ^^
아래가 기본 2차원 배열 입니당 ^^
위랑 출력은 동일 합니당..
★ 만 붙였을 뿐...ㅋㅋㅋ
<?
//=====================================================
// 2차원 배열 사용하기 ! ◆ 2번째 예제
// made by tood.net 2001년 12월 17일 이른 새벽
//=====================================================
$users["이영무 신상명세"]["이름"]="이영무★";
$users["이영무 신상명세"]["주소"]="서울★";
$users["이영무 신상명세"]["나이"]="30★";
$users["이영무 신상명세"]["몸무게"]="68★";
$users["육철호 신상명세"]["이름"]="육철호★";
$users["육철호 신상명세"]["주소"]="인천★";
$users["육철호 신상명세"]["나이"]="33★";
$users["육철호 신상명세"]["몸무게"]="76★";
while ( list($username, $subarray) = each($users) ) {
echo " ** 이름: $username: ";
echo "<P>";
while ( list($key, $val) = each($subarray) ) {
echo "<br> $key : $val\n";
}
echo "<P>";
}
// foreach() 로 변경 한다면 ?
foreach($users as $username=>$subarray){
echo " ** 이름: $username: ";
echo "<P>";
foreach($subarray as $k=>$v){
echo "<br> $k : $v\n";
}
echo "<P>";
}
?>
<?
//=====================================================
// 2차원 배열 사용하기 ! 3번째 예제 ◆
// made by tood.net 2001년 12월 17일 이른 새벽
//=====================================================
$users[0][]="이영무";
$users[0][]="서울";
$users[0][]="30";
$users[0][]="68";
/* 아래 처럼 하면 자동 할당 되지 않는다.!!
$users[][]="이영무";
$users[][]="서울";
$users[][]="30";
$users[][]="68";
*/
$users[1][]="육철호_2";
$users[1][]="인천_2";
$users[1][]="33_2";
$users[1][]="76_2";
foreach($users as $username=>$subarray){
// echo "<br> $username: \n";
foreach($subarray as $k=>$v){
echo "<br>[$username][$k] : $v\n";
}
echo "<P>";
}
?>
<?
//=====================================================
// 2차원 배열 사용하기 ! 4번째 예제 ☆◆
// made by tood.net 2001년 12월 17일 이른 새벽
//=====================================================
$users[0][0]="이영무";
// 배열은 큰따옴표 안에서 파싱 되지 않는다 !!!★ 아래는 작동 하지 않는다.
// echo " $users[0][0] ★<P>";
$users[0][]="서울";
$users[0][]="30";
$users[0][]="68";
/* 아래 처럼 하면 자동 할당 되지 않는다.!!
$users[][]="이영무";
$users[][]="서울";
$users[][]="30";
$users[][]="68";
*/
$users[1][]="육철호_2";
$users[1][]="인천_2";
$users[1][]="33_2";
$users[1][]="76_2";
if (is_array($users)){ // 배열 값이 있는지 체크 , 있을 경우만 !
foreach($users as $username=>$subarray){
echo "<br> $username: <br>";
echo $users[$username][0]."<br>";
echo $users[$username][1]."<br>";
echo $users[$username][2]."<br>";
echo $users[$username][3]."<br>";
echo "<P>";
}
}
?>
◆중요사항 ◆
1. 배열은 큰따옴표 안에서 파싱 되지 않는다 !!!★ 아래는 작동 하지 않는다.
// echo " $users[0][0] ★<P>";
2. define 으로 정의된 상수도 큰따옴표 안에서 파싱 되지 않는다. !!
3. list() 와 foreach()의 속도는 foreach() 가 35% 정도 빠르다 !!!
추가해서리..
===============================================================
배열에서 08을 0으로 출력하는 경우 자주 발생 !
08,09 일 경우만 0으로 출력이 된다. 왜 일까요 ?
아래 처럼 따옴표(')를 씌워 주어야 한다.
<?php
$b=array(07, '08', '09');
sort($b);
foreach($b as $v){
$v=(int)$v;
print $v.",";
}
?>
===============================================================
if(strcmp($key,$io)==0){// 문자열 비교 if($a==$b) 안될 수 있다.
print "$key $io : ";
print $v1."<br>";
}
===============================================================
<?php
$b=array(07, '08', '09','abc','kscc');
kp($b);
function kp($b){
sort($b);
foreach($b as $v){
print $v." ";
}
}
print "sdds";
?>
===============================================================
주소(URL)에 배열 넘기기
<?php
// http://localhost/test/all.php?x[]=55&x[]=44&x[]=233
print_r($_GET);
?>
또는
http://php.net/serialize
http://php.net/unserialize
출처 : 투덜스 넷
댓글목록
등록된 댓글이 없습니다.