PHP中有字典吗?


84

例如:

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

然后可以像这样引用它:

 $names[bob]

1
定义“字典”。您是在指简单的关联数组吗?
jerluc 2011年

如果您要从数据库放置/检索数据,您是否会寻找数据库的字典呢?
Niklas

是的,那正是我所指的。和idk,我
还没

@cularis然后有您的答案
jerluc 2011年

1
@bzupnick那么你应该ASORT他们。
密码

Answers:


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

可以使用标准数组。


数组的问题在于,当我对它们进行sort()排序时,我需要保留索引,这是db键,因此我可以重新查询该值
bzupnick 2011年

2
参见本页:php.net/manual/en/array.sorting.php。PHP中有20多种排序方法;-)。您可能需要ksort
Grad van Horck

2
@Felix:是的。我的意思是在这种情况下,一个;-)更好。:-)
Grad van Horck 2011年

还是arsort yeh?因为我需要最高的才能
上榜

2
曾经有一位同事从C背景开始在php中工作。他问我如何用php制作字典,我说wtf是字典o_o现在我知道
Captain Hypertext

14

不,PHP中没有字典。您拥有的最接近的东西是一个数组。但是,数组与字典不同,因为数组既有索引又有键。字典只有键,没有索引。那是什么意思

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

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

上面的数组允许以下行,但是如果它是字典,则会出现错误。

print $array[0]

Python同时具有数组和字典。


0

Normalarray可以用作字典数据结构。通常,它具有多种用途:数组,列表(向量),哈希表,字典,集合,堆栈,队列等。

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

$names['bob'];

而且由于设计广泛,因此无法获得特定数据结构的全部好处。您可以通过扩展来实现自己的字典,ArrayObject也可以使用SplObjectStorage地图(字典)实现的类,该类允许将对象分配为键。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.