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에는 사전이 없지만 PHP 배열은 인덱스와 키를 모두 가지고 있기 때문에 다른 언어의 사전과 비슷하게 동작할 수 있습니다(키만 있고 인덱스는 없습니다).
그게 무슨 뜻이죠?
$array = array(
"foo" => "bar",
"bar" => "foo"
);
// as of PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
위의 PHP 배열에는 다음 행을 사용할 수 있지만 Python과 같은 언어(배열과 사전을 모두 포함)의 사전을 사용하여 동등한 작업을 수행할 수 있는 방법은 없습니다.
print $array[0]
PHP 어레이는 어레이에 값을 제공하여 값을 인쇄할 수도 있습니다.
print $array["foo"]
보통의array
는 사전 데이터 구조로서 기능할 수 있습니다.일반적으로 어레이, 리스트(벡터), 해시 테이블, 사전, 컬렉션, 스택, 큐 등의 다목적 용도가 있습니다.
$names = [
'bob' => 27,
'billy' => 43,
'sam' => 76,
];
$names['bob'];
또한 폭넓은 설계로 인해 특정 데이터 구조의 이점을 충분히 얻을 수 없습니다.를 확장하여 사용자 자신의 사전을 구현하거나 객체를 키로 할당할 수 있는 맵(사전) 구현인 클래스를 사용할 수 있습니다.
어레이 사용:
<?php
$arr = [
"key" => "value",
"key2" => "value2"
];
임의의 개체를 키로 사용하려는 경우 "불법 오프셋 유형"이 발생할 수 있습니다.이 문제를 해결하려면 , 다음의 호출로 키를 랩 합니다.spl_object_hash
임의의 개체를 가져와서 고유한 해시를 반환합니다.
단, 한 가지 유의할 점은 키 자체가 해시가 되기 때문에 해시를 생성하기 위해 사용되는 오브젝트 목록을 사전에서 가져올 수 없다는 것입니다.이것은, 특정의 실장에서는 필요한 경우와 그렇지 않은 경우가 있습니다.
간단한 예:
<?php
class Foo
{
}
$dic = [];
$a = new Foo();
$b = new Foo();
$c = $a;
$dic[spl_object_hash($a)] = 'a';
$dic[spl_object_hash($b)] = 'b';
$dic[spl_object_hash($c)] = 'c';
foreach($dic as $key => $val)
{
echo "{$key} -> {$val}\n";
}
출력은 다음과 같습니다.
0000000024e27223000000005bf76e8a -> c
0000000024e27220000000005bf76e8a -> b
실행 시 해시 및 해시는 다를 수 있습니다.
언급URL : https://stackoverflow.com/questions/6490482/are-there-dictionaries-in-php
'source' 카테고리의 다른 글
php에서 비트마스크를 구현하려면 어떻게 해야 하나요? (0) | 2023.01.15 |
---|---|
상태를 업데이트하지 않는 Vuex 변환 (0) | 2023.01.15 |
Vuetify 배지가 표시되지 않음 - 컴파일된 코드로 코멘트 아웃됨 (0) | 2023.01.15 |
.format을 사용하는 동안 문자열에 괄호로 묶은 문자를 인쇄하려면 어떻게 해야 합니까? (0) | 2023.01.15 |
MySQL INSER JOIN은 두 번째 테이블에서 행을 하나만 선택합니다. (0) | 2023.01.15 |