php通过hash区分数组,php - 哈希表VS关联数组

在PHP中,关联数组实现为哈希表,具有一些额外的功能。

但从技术上讲,关联数组与哈希表不同 - 它只是部分地在后台实现哈希表。 因为它的大多数实现都是哈希表,所以它可以做散列表所能做的所有事情 - 但它也可以做更多。

例如,您可以使用for循环遍历关联数组,而不能使用哈希表。

因此,虽然它们是相似的,但关联数组实际上可以对哈希表所做的事情做超集 - 因此它们并不完全相同。 将其视为哈希表和额外功能。

代码示例:

使用关联数组作为哈希表:

$favoriteColor = array();

$favoriteColor['bob']='blue';

$favoriteColor['Peter']='red';

$favoriteColor['Sally']='pink';

echo 'bob likes: '.$favoriteColor['bob']."\n";

echo 'Sally likes: '.$favoriteColor['Sally']."\n";

//output: bob likes blue

// Sally likes pink

循环关联数组:

$idTable=array();

$idTable['Tyler']=1;

$idTable['Bill']=20;

$idTable['Marc']=4;

//up until here, we're using the array as a hashtable.

//now we loop through the array - you can't do this with a hashtable:

foreach($idTable as $person=>$id)

echo 'id: '.$id.' | person: '.$person."\n";

//output: id: 1 | person: Tyler

// id: 20 | person: Bill

// id: 4 | person: Marc

特别注意在第二个例子中,每个元素的顺序是根据它们输入数组的顺序而保持的(Tyler,Bill Marc)。 这是关联数组和哈希表之间的主要区别。 哈希表在它保存的项之间不保持连接,而PHP关联数组则保持连接(你甚至可以对PHP关联数组进行排序)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值