PHP中是否有等效的Java HashMap?
我需要类似于Java中的HashMap的PHP对象,但是当我谷歌搜索时我没有找到,所以如果有人知道如何在PHP中模仿HashMaps,将不胜感激。
我需要类似于Java中的HashMap的PHP对象,但是当我谷歌搜索时我没有找到,所以如果有人知道如何在PHP中模仿HashMaps,将不胜感激。
PHP 中的数组可以具有键值结构。
打开一个 phpsh 终端:
php> $myhashmap = array();
php> $myhashmap['mykey1'] = 'myvalue1';
php> $myhashmap['mykey2'] = 'myvalue2';
php> echo $myhashmap['mykey2'];
myvalue2
在这种情况下,的复杂性似乎是恒定时间O(1),这意味着当$myhasmap的大小接近无穷大时,给定键检索值所需的时间保持不变。$myhashmap['mykey2']
php 数组读取的证据是常量时间:
通过 PHP 解释器运行此命令:
php> for($x = 0; $x < 1000000000; $x++){
... $myhashmap[$x] = $x . " derp";
... }
该循环添加了10亿个键/值,将它们全部添加到哈希图大约需要2分钟,这可能会耗尽您的内存。
然后查看执行查找需要多长时间:
php> system('date +%N');echo " " . $myhashmap[10333] . " ";system('date +%N');
786946389 10333 derp 789008364
那么PHP数组映射查找的速度有多快呢?
这是我们查找的关键。100 万纳秒 == 1 毫秒。从密钥获取值所需的时间为 206 万纳秒或约 2 毫秒。如果数组为空,则时间大致相同。对我来说,这看起来像是恒定的时间。10333