홈으로 홈으로 | 무료회원가입 | 아이디/비번찾기 | 즐겨찾기
추천음악방송메인홈1대1상담음악방송청취
뽕짝아가씨(무료음악채널)
okTrot(무료음악채널)
전통가요(무료음악채널)

온라이브스토어(앱다운로드)
온라이브(방송등록및청취)

환상의뽕짝파티 무료음악
명작트로트메들리 무료음악
트로트메들리관광 무료음악
POP Player
신나는 고스톱
컴퓨터 오목
작은 음악다방
운.영.자.1대1.상담
FAQ\지원.프로그램
Q&A\고.객.지.원

자동러시 웹플레이어신청

보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
php 배열
2년 전
PHP의 서열은 실제로는 순서화된 맵입니다. 맵은 형의 일종으로 값을 키에 연결 짓습니다. 이 형은 다양한 용도에 맞추어 최적화됩니다. 배열뿐만 아니라, 리스트(벡터) 해시 테이블(맵의 실장의 하나), 사전, 컬렉션, 스택, 큐 등으로 사용할 수 있습니다. PHP배열에는 다른 PHP배열을 값으로 유지할 수 있어 매우 쉽게 트리 구조를 표현할 수 있습니다.

이들 데이터 구조에 관한 설명은 본 매뉴얼의 범위를 넘기 때문에 생략합니다만, 각각에 대해서 적어도 하나는 예를 나타냅니다. 이 분야는 광범위에 걸친 다양한 문헌이 존재합니다. 보다 상세한 정보에 대해서는 이들의 문헌을 참조하십시오.

구문
array() 에서 지정

배열 은 언어에 내장된 array() 에서 작성할 수 있습니다. 이 구조는 특정의 수의 쉼표로 구분된 키 값 => 세트를 인수로 합니다.

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)
마지막 요소 뒤의 쉼표는 써도 안 써도 상관 없습니다. 배열을 문장으로 정의하는 경우는, 보통은 마지막 콤마를 생략합니다. 즉 array(1, 2) 쪽이 array(1, 2, ) 더 추천이라는 것입니다. 그러나 복수행으로 정의하는 경우는 마지막 콤마를 쓰는 것이 일반적입니다. 그러고 두면, 배열의 마지막 요소를 추가하기가 쉽게 되니까요.

PHP 5.4이후는 배열의 단축 구문이 추가되고, array() 대신[] 을 사용할 수 있게 되었습니다.

사례 1심플한 배열 정의

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// PHP 5.4 에서는 이렇게 씁니다
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>
key 는 정수 또는 문자열입니다. value 에는 임의의 형식을 지정할 수 있습니다.

또 다음과 같은key 캐스트가 발생합니다.

integer 으로 타당한 형식의 문자열은integer 틀에 캐스팅됩니다. 즉, 키를"8" 지정하면 실제로는 8 로 격납된다는 것입니다. 한쪽은"08" 캐스팅되지 않습니다. 이는 십진수로 타당한 형식이 아니기 때문이죠.
floats또한integer 에 캐스트 됩니다. 즉 소수 부분은 버릴 수 있다는 것입니다. 예를 들면 키를8.7 지정하면 실제로는 8 로 저장됩니다.
bool 도integer 에 캐스트 됩니다. 즉 키를true 지정하면 실제로는1 에 저장되고 마찬가지로 키를false 하면 실제로는0 입니다.
Null 는 하늘 문자열로 캐스팅됩니다. 즉, 키에 null 를 지정하면 실제로는"" 으로 저장됩니다.
array 및object 은 키로 사용할 수 없습니다. 키로 사용하다Illegal offset type 는 경고가 발생합니다.
배열 선언 때 같은 키로 여러 요소를 지정하면 마지막으로 지정한 것이 지금까지의 값을 덮어 씁니다.

사례 2형의 캐스트와 값의 덮어쓰기의 예

<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
var_dump($array);
?>
위의 예와 출력은 이하입니다.

array(1) {
  [1]=>
  string(1) "d"
}
위의 예에서는 모든 키가1 캐스팅됩니다. 그리고 뒤에서 지정된 값이 점점 전의 값을 덮어쓰기 하는 최종적으로는 마지막에 대입된 "d" 만이 남습니다.

PHP에서는 첨자 서열과 연관 배열 사이에는 틀림 없다, 배열형은 1개 뿐 같은 배열에서 정수의 인덱스와 문자열의 인덱스를 동시에 씁니다.

사례 3정수와 문자열의 키의 혼재 사례

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>
위의 예와 출력은 이하입니다.

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}
key 는 옵션입니다. 생략한 경우 PHP 는 지금까지 사용된 정수 키 중 최대의 것에 1을 더한 값을 사용합니다.

사례 4수치 첨자 배열에서 키를 생략하는 사례

<?php
$array = array("foo", "bar", "hello", "world");
var_dump($array);
?>
위의 예와 출력은 이하입니다.

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hello"
  [3]=>
  string(5) "world"
}
일부 요소에만 키를 지정할 수도 있습니다.

사례 5일부 요소에만 키를 지정하는 사례

<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>
위의 예와 출력은 이하입니다.

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}
보다시피, 끝 값이며"d" 키는 7 입니다. 그것까지 키로 사용된 최대 정수가 6 이니까요.

뿔 괄호 구문에 따른 배열 요소 접근

배열의 요소에의 액세스에는array[key] 구문을 사용합니다.

사례 6배열의 요소에 대한 접근

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>
위의 예와 출력은 이하입니다.

string(3) "bar"
int(24)
string(3) "foo"
주의:

뿔 괄호와 파도 괄호는 배열의 요소에 액세스 할 때에는 모두 같은 의미로 사용할 수 있습니다 (즉, 이 예에서$array[42] 와는$array{42} 같은 것을 나타낸다는 것입니다).
PHP 5.4이후는 함수와 메소드의 반환 결과를 직접 서열로 다루게 되었습니다. 예전에는 일단 일차 변수에 대입하지 않는다고 배열로는 다루지 않았습니다.

PHP 5.5이후는 배열 리터럴을 데 참고할 수 있게 되었습니다.

예 7배열의 데빈 레퍼런스

<?php
function getArray() {
    return array(1, 2, 3);
}

// PHP 5.4 에서는 이렇게 씁니다.
$secondElement = getArray()[1];

// 전에는 이렇게 하나
$tmp = getArray();
$secondElement = $tmp[1];

// 혹은 이렇게 해야 합니다.
list(, $secondElement) = getArray();
?>
주의:

배열에 정의되지 않은 키에 접근했을 때의 거동은 정의 변수에 접근했을 때와 같습니다. E_NOTICE 메시지가 발행되고 돌려주는 결과는NULL 입니다.
뿔 괄호 구문에서 작성/수정

명시적으로 값을 설정하면 기존의 배열을 수정할 수도 있습니다.

이는 각 괄호 안에 열쇠를 지정하고 배열에 값을 대입함으로써 실시합니다. 키를 생략할 수도 있습니다. 이 경우 하늘 모퉁이 괄호 ("[]")의 변수 이름으로 추가하세요.

$arr[키] =  치;
$arr[] = 치;
//  키는  문자열  또는
//정수의 어느 쪽인가입니다.
//값 의 형은 아무거나 괜찮습니다.
$arr 하지만 아직 존재하지 않으면 새로 만듭니다. 즉 이것은 배열을 만드는 방법의 하나이기도 합니다. 하지만 이 방법을 사용하는 것은 권장하지 않습니다. 왜냐하면 이미 $arr 뭔가 값 (리퀘스트 변수로부터 문자열 등)가 들어 있는 경우에는 그 값이 그대로 남아 [] 하지만 실제로는 문자열 연결 연산자 를 나타내기 때문입니다. 변수를 초기화할 때에는 직접 대입하는 것이 좋습니다.

어떤 값을 변경하려면 새로운 값에 값을 대입합니다. 특정 키/값 세트를 삭제하고자 하는 경우에는 unset() 를 사용할 필요가 있습니다.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // 이 스크립트의 이 위치에 기술한 경우.
nbsp;               // $arr[13] = 56; 과 같습니다

$arr["x"] = 42; // 키"x"의 새로운 요소를 배열에 추가합니다
                
unset($arr[5]); // 배열에서 요소를 삭제합니다

unset($arr);    // 배열 전체를 삭제합니다
?>
주의:

위와 같이 키를 생략하고 신규 요소를 추가할 경우 추가되는 수치 첨자는 사용되는 첨자 최대치+1(단, 적어도 0이상)이 됩니다. 아직 수치 첨자가 존재하지 않으면 첨자는0 (제로)입니다.

경고
PHP 4.3.0이후 이런 첨자 생성 동작은 변경되었습니다. 현재는 배열에 추가할 때 그 배열의 최대 첨자가 마이너스인 경우는 다음 함께 글씨는 제로 (0)입니다. 예전에는 정규의 첨자의 경우와 마찬가지로 새로운 첨자는 최대 첨자에+1 한 것이 세팅되었습니다.
다음의 키 생성에서 오프셋으로 사용되는 정수 값 (첨자의 최대치)에 대응할 엔트리가 반드시 내부에 존재하는 것은 아님에 주의하세요. 그러나 그 값은 많은 경우 배열에 있는 정수의 키 값의 최대값과 동일한 것입니다. 이하에 예를 나타냅니다.

<?php
//  간단한 배열을 생성합니다.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// 모든 아이템을 삭제합니다만, 배열 자체는 삭제하지 않고 둡니다.
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// 아이템을 추가합니다( 새로운 곁들이는 글씨는 0이 아니다
// 5가 되는 것에 주의)
$array[] = 6;
print_r($array);

// 함께 글씨를 흔들고요.
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
위의 예와 출력은 이하입니다.

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)
유용한 함수
배열에서 사용하는 편리한 함수가 많이 있습니다. 배열 함수 부분을 참조하십시오.

주의:

unset() 함수는 배열의 키를 삭제할 수 있습니다. 다만 이것에 의해서 인덱스의 재구축이 진행되는 것은 아니기에 주의하세요. "통상의 정수 첨자"(0부터 시작되면서 1씩 증가)만을 사용하고 있는 경우 array_values() 를 사용하여 인덱스를 재구축할 수 있습니다.

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* 이에 따른 배열은 다음과 같이 정의됩니다.
   $a = array(1 => 'one', 3 => 'three');
   이하는 아닙니다:
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// $b 은 array(0 => 'one', 1 =>'three')입니다
?>
배열 전용 제어 구조로서foreach 가 있습니다. 이 구조는 배열의 요소에 쉽게 연속적으로 접근하는 수단을 제공합니다.

배열에서 할 일과 해서는 안 되는 것
왜$foo[bar] 는 사용 못하나?

연관 배열의 첨자 전후에는 항상 따옴표로 묶다 필요가 있습니다. 예를 들면,$foo[bar]가 아니라$foo['bar'를 사용하세요. 그러나$foo[bar]은 왜 잘못인가요? 낡은 스크립트에서 다음과 같은 구문을 본 적이 있을지도 모릅니다.

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
이는 잘못되고 있는데 동작합니다. 그럼, 왜 잘못되고 있는 거죠? 그 이유는 이 코드에는 문자열('bar'-따옴표로 묶이고 있다) 아니다 미정의 정수(bar)가 사용되고 있으며 PHP 가 같은 이름의 정수를 불행하게 같은 코드 속에 정의할 가능성이 있기 때문입니다. 하위 호환성 유지를 위한 미정의 정원은 같은 이름의 문자열로 자동적으로 변환됩니다. 그래서 이 코드는 동작합니다. 예컨대bar 라는 이름의 정의되지 않은 정수가 있다면 PHP는'bar' 라는 문자열로 그것을 치환하여 사용합니다.

주의: 이는 첨자를 항상 쿼트겠다는 의미가 없습니다. 상수와 변수 를 첨자로 사용할 때는 쿼트하면 PHP 는 그것을 해석할 수 없게 되어 버립니다.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// 단순한 배열
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nChecking $i: \n";
    echo "Bad: " . $array['$i'] . "\n";
    echo "Good: " . $array[$i] . "\n";
    echo "Bad: {$array['$i']}\n";
    echo "Good: {$array[$i]}\n";
}
?>
위의 예와 출력은 이하입니다.

Checking 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 1

Checking 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 2
이 구체 예를 이하에 나타냅니다.

<?php
// 오류를 모두 표시하도록 설정
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

//  올바른
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// 잘못. 이것은 동작하지만 정의 정수 fruit을 사용하기 때문에
// 동시에 E_NOTICE차원의 PHP오류를 발생합니다
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

./ 검증의 때문에 상수를 정의하고 봅시다.
// fruit라는 이름의 상수에 값'veggie'을 대입합니다.
define('fruit', 'veggie');

// 여기에서는 출력이 다르다는 것에 주의하세요.
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// 이하는 문자열 중이기 때문에 OK입니다. 정수는 문자열 중에서는 해석되네
// 때문에 E_NOTICE오류는 여기에서는 발생하지 않습니다.
print "Hello $arr[fruit]";      // Hello apple

// 예외가 1개이며 문자열에서 파도 괄호로 배열이 묶인 경우에는
// 정수가 해석됩니다
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// 이는 동작하지 않고, 이하 같은 버스 오류를 발생합니다:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// 문자열에서 슈퍼 글로벌을 사용한 경우도 물론 마찬가지입니다.
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// 문자열 결합으로 그렇게 할 수 있습니다.
print "Hello " . $arr['fruit']; // Hello apple
?>
error_reporting() 로 (E_ALL 을 지정하는 등으로) E_NOTICE 수준의 오류 출력을 유효하게 할 경우 상기의 에러가 출력됩니다. 기본적으로는 error_reporting 이들을 표시하지 않는 설정이 되고 있습니다.

구문의 절에 기술했듯이 각 괄호 ('['및']') 사이에는식이 없으면 안 됩니다. 이는 다음과 같이 쓸 수 있음을 의미합니다.

<?php
echo $arr[somefunc($bar)];
?>
이는 함수의 반환 값을 배열의 첨자로 사용하는 사례입니다. PHP 는 정수에 대해서도 인식합니다. 이하 같은E_* 사용 예를 본 적이 있을지도 모릅니다.

<?php
$error_descriptions[E_ERROR]   = "A fatal error has occurred";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE]  = "This is just an informal notice";
?>
최초의 예bar 와 똑같이 E_ERROR 도 유효한 첨자임에 주의하세요. 그러나 실제로는 마지막 예는 다음과 같이 쓰는 것과 같습니다.

<?php
$error_descriptions[1] = "A fatal error has occurred";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>
이는E_ERROR 초가1 와 동일한 것 등에 따릅니다.

그럼, 왜$foo[bar] 는 동작하는 것이 가능한 걸까요? 그것은bar 이 상수식임을 기대되는 구문에서 사용되기 때문입니다. 그러나 이 경우 bar 라는 이름의 정원은 존재하지 않습니다. PHP는 이 경우 당신이 문자열"bar" 처럼 리터럴 bar 를 지정했지만 인용 부호를 잊었다고 가정합니다.

그럼, 왜 잘못되고 있는 거죠?

장래적으로 PHP개발 팀이 다른 상수 또는 키워드를 추가할지도 모르고 문제가 될 가능성이 있습니다. 예를 들어, 현재도 단어empty 및 default를 사용할 수 없습니다. 이는 이들이 특별한 예약된 키워드인 때문입니다.

주의: 이중 따옴표로 묶인 문자열 중에서는 따옴표로 배열의 첨자를 안 묶 수 있기 때문에 "$foo[bar]" 는 유효합니다. 이 이유에 대한 자세한 내용은 상기 사례나 문자열 중에서 변수의 버스를 참조하세요.
배열로의 변환
integer, float, string, boolean, resource모든 틀에서도 array 로 변환할 경우 처음의 스칼라 값이 할당되어 있는 하나의 요소(첨자는 0) 를 가진 배열을 얻게 됩니다.

object를 배열할 경우에는 배열의 요소로서 객체의 속성(멤버 변수)을 가진 배열을 얻게 됩니다. 첨자는 멤버 변수 이름이 됩니다만, 몇가지 주의해야 할 예외가 있습니다. 정수의 속성은 접속 불능이 됩니다. private변수의 경우 변수 이름의 머리에 클래스 이름이 붙습니다. 또 protected변수의 경우는 변수 이름의 머리에'*'이 붙습니다. 이때 머리에 추가되는 값의 전후 null바이트가 따라옵니다. 그 결과 뜻밖의 행동을 하는 일이 있습니다.

<?php

class A {
    private $A; // 이는 '¥ 0A¥ 0A' 로 됩니다
}

class B extends A {
    private $A; // 이는 '¥ 0B¥ 0A' 로 됩니다
    public $AA; // 이는 'AA' 로 됩니다
}

var_dump((array) new B());
?>
위의 예에서는'AA'이라는 키가 두개가 있게 보이지만 그 중 하나는 실제로는'¥ 0A¥ 0A'로 됩니다.

NULL 를 배열로 변환하니 하늘의 배열을 얻습니다.

비교
array_diff() 으로 순서 연산자 를 사용하면, 배열을 비교할 수 있습니다.


PHP배열형은 여러가지 사용법이 가능합니다. 배열의 강력한 기능을 나타냈기 때문에 여기서 몇가지 예를 소개합니다.

<?php
// 이는
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
            4        // 키는 0이 됩니다
          );

$b = array('a', 'b', 'c');

// 은 완전히 이것과 같습니다.
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // 키는 0이 됩니다

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// 위의 코드를 실행하면$a 은 다음과 같은 배열
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4) 로$b 은
// array(0 => 'a', 1 => 'b', 2 => 'c') 혹은 간단히 array('a', 'b', 'c') 로 됩니다
?>
사례 8 array()의 사용 사례

<?php
// 맵을 실시하는 배열
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );
            
// 수치 키만을 가진
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// 이는 array( 0 => 7, 1 => 8, ...) 과 같습니다

$switching = array(         10, // key = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // key = 6 (최대의 첨자는 5입니다)
                    '8'  =>  2, // key = 8 (정수!)
                    '02' => 77, // key = '02'
                    0    => 12  // 값 10은 12에서 수정됩니다
                  );
                  
// 하늘의 배열
$empty = array();        
?>
예 9컬렉션

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {
    echo "Do you like $color?\n";
}

?>
위의 예와 출력은 이하입니다.

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?
PHP 5이후, 배열을 참조도하는 것으로 그 값을 직접 변경할 수 있게 되었습니다. 이전 버전에서는 다음과 같은 회피책이 필요합니다.

사례 10그룹 내에서 요소의 변경

<?php
// PHP 5
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* 이후의 nbsp;$color 에 쓸
배열의 요소를 다시 쓰고 버리지 않음을 보증할 */

// 옛 버전에서 회피책
foreach ($colors as $key => $color) {
    $colors[$key] = strtoupper($color);
}

print_r($colors);
?>
위의 예와 출력은 이하입니다.

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)
이 예는 1부터 시작되는 배열을 작성합니다.

사례 11 1부터 시작되는 첨자

<?php
$firstquarter  = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>
위의 예와 출력은 이하입니다.

Array
(
    [1] => 'January'
    [2] => 'February'
    [3] => 'March'
)
사례 12배열에 대입한다

<?php
// 디렉토리에서 모든 아이템을 배열에 대입한다
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>
배열에는 순서가 적용되었습니다. 다른 분류 함수를 이용하여 순서를 변경할 수도 있습니다. 보다 상세한 정보에 대해서는 배열 함수 를 참조하십시오. count() 함수를 사용함으로써 배열의 요소 수를 셀 수 있습니다.

사례 13배열의 소트

<?php
sort($files);
print_r($files);
?>
배열의 값은 뭐든지 좋아, 그 값을 다른 배열로 하는 것도 가능합니다. 이로써 귀납적인 배열과 다차원 배열을 작성할 수 있습니다.

사례 14재귀 및 다차원 배열

<?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"
                                     )
                );

// 위의 배열 내용을 취득하기 위한 사례
echo $fruits["holes"][5];    // "second" 을 표시합니다
echo $fruits["fruits"]["a"]; // "orange" 을 표시합니다
unset($fruits["holes"][0]);  // "first"  을 삭제합니다

//  새로운 다차원 배열을 작성합니다
$juices["apple"]["green"] = "good";
?>
배열에 대입에서는 항상 값이 복사되는 것에 주의하세요. 배열을 레퍼런스로 복사하는 경우에는 레퍼런스 연산자를 쓸 필요가 있습니다.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 이 변경됩니다.
             // $arr1 은 array(2,3) 그대로입니다.
            
$arr3 = &$arr1;
$arr3[] = 4; // $arr1 로 $arr3 은 같은 내용이 됩니다.
?>
추천추천 : 203 추천 목록
번호 제목
3,015
 iframe 높이 100% 맞추기
3,014
 curl 함수를 이용한 HTTP REFERER 변경
3,013
 윈도우10 시스템 파일 및 Dism 검사
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
3,001
 사용자가 웹브라우저에서 뒤로가기를 했을때 감지하는 방법
3,000
 [jQuery]버튼 활성화, 비활성화
2,999
 jQuery show() / hide() / toggle() 사용법
2,998
 jquery 여러가지 이벤트
2,997
 border-radius 속성
2,996
 네이버 오픈API 음성합성 API 사용하는 PHP 샘플코드
2,995
 UTF8 한글 자르기..
2,994
 iconv 에러 발생시 계속 처리하기 옵션
2,993
 [PHP] 현재 페이지의 도메인 , URL 정보 알아내기.
2,992
 [PHP] 막강 기능 배열..
2,991
 [CSS] - Input clear `X ` 버튼 제거 ( IE, Chrome, Firefox )
2,990
 [Mobile] - 모바일웹 Href 태그속성들
2,989
 [JqueryMobile] - 현재화면의 가로세로 사이즈 구하기
2,988
 [JqueryMobile] - 화면의 가로, 세로 사이즈 구하는 방법
2,987
 jquery로 가로 넓이(width), 세로 높이(height) 자동 조절
2,986
 iframe 높이 jquery로 자동조절하기
2,985
 jQuery 오른쪽 영역의 높이를 왼쪽 영역의 높이와 동일하게 하기
2,984
 jquery에서 테이블 짝수, 홀수 번째 TR 배경색 변경하기
2,983
 jquery에서 테이블에 마우스 오버시 해당 행의 배경색상 변경하기
2,982
 jquery 스크립트내 특정값 확인하기 (디버깅)
2,981
 jquery cookie (jquery.cookie.js)
목록
인기절정뽕짝파티
트로트재생목록
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
종합성인가요방
못잊을옛날노래
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
JP\CN
POP TOP BEST
K.R.노래방

추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
가요1번지(종합)
뮤직하우스
동요\연변\반주\기타
가요축제\트롯1번지
댄스\메들리\리믹스
카페\명상\경음악\기타
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.