[php] PHP에 사전이 있습니까?

예를 들면 :

$names = {[bob:27, billy:43, sam:76]};

다음과 같이 참조 할 수 있습니다.

 $names[bob]



답변

http://php.net/manual/en/language.types.array.php

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

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

표준 배열을 그런 식으로 사용할 수 있습니다.


답변

아니요, PHP에는 사전이 없습니다. 가장 가까운 것은 배열입니다. 그러나 배열은 인덱스와 키를 모두 가지고 있다는 점에서 사전과 다릅니다. 사전에는 키만 있고 색인은 없습니다. 그게 무슨 뜻입니까?

$array = array(
    "foo" => "bar",
    "bar" => "foo"
);

// as of PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];

다음 줄은 위의 배열에서 허용되지만 사전 인 경우 오류가 발생합니다.

print $array[0]

파이썬에는 배열과 사전이 모두 있습니다.


답변

Normal array은 사전 데이터 구조 역할을 할 수 있습니다. 일반적으로 배열, 목록 (벡터), 해시 테이블, 사전, 컬렉션, 스택, 대기열 등 다목적 용도로 사용됩니다.

$names = [
    'bob' => 27,
    'billy' => 43,
    'sam' => 76,
];

$names['bob'];

그리고 넓은 디자인으로 인해 특정 데이터 구조의 모든 이점을 얻지 못합니다. 를 확장하여 자신의 사전을 구현 ArrayObject하거나 SplObjectStorage객체를 키로 할당 할 수있는 맵 (사전) 구현 인 클래스를 사용할 수 있습니다 .


답변