PHP에 사전이 있습니까?


84

예를 들면 :

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

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

 $names[bob]

1
"사전"을 정의하십시오. 간단한 연관 배열을 언급하고 있습니까?
jerluc 2011-06-27

데이터베이스에서 데이터를 배치 / 검색하는 경우 대신 데이터베이스 용 사전을 찾고 있지 않습니까?
Niklas

네, 그게 바로 제가 말하는 것입니다. 그리고, 나는 롤 .... THT에 대해 생각 havent 한 IDK
bzupnick

@cularis는 답이있다
jerluc

1
@bzupnick 당신은해야한다 따라 asort 을.
cypher 2011-06-27

답변:


102

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",
];
?>

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


배열의 문제는 그 전 정렬 () 그들에게, 나는 다시 쿼리를 할 수 있도록 DB를 핵심 인덱스를 유지하기 위해 그 값을 필요로 할 때
bzupnick

2
이 페이지를 참조하십시오 : php.net/manual/en/array.sorting.php . PHP에는 20 개 이상의 정렬 방법이 있습니다. ;-). 아마도 ksort.
Grad van Horck 2011 년

2
@Felix : 네. 나는이 경우 하나의 ;-) 분류가 더 낫다는 것을 의미했습니다. :-)
대학원 반 Horck

아니면 엉망이야? 내가 정상에있을 가장 높은 필요가 원인
bzupnick

2
동료가 C 배경에서 PHP로 작업하기 시작했습니다. 그는 PHP에서 사전을 만드는 방법을 나에게 물었다, 그리고는 무슨 일 밝혔다 사전 O_O 지금은 알
캡틴 하이퍼

14

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

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

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

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

print $array[0]

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


0

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

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

$names['bob'];

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.