本篇文章为大家展示了如何在php中使用哈希表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

超过十多年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:网站设计制作、成都网站设计,成都网站推广,成都网站优化,整体网络托管,小程序定制开发,微信开发,app软件开发公司,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
php的框架有哪些
php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为Web项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。
1.内部组成
键(key):用于操作数据的标示,例如PHP数组中的索引,或者字符串键等等。
槽(slot/bucket):哈希表中用于保存数据的一个单元,也就是数据真正存放的容器。
哈希函数(hash function):将key映射(map)到数据应该存放的slot所在位置的函数。
2.优势
通过关键值计算直接获取目标位置,对于海量数据中的精确查找有非常惊人的速度提升,理论上即使有无限的数据量,一个实现良好的哈希表依旧可以保持O(1)的查找速度,而O(n)的普通列表此时已经无法正常执行查找操作(实际上不可能,受到JVM可用内存限制,机器内存限制等)。
3.应用场景
在工程上,经常用于通过名称指定配置信息、通过关键字传递参数、建立对象与对象的映射关系等。目前最流行的NoSql数据库之一redis,整体的使用了哈希表思想。
一言以蔽之,所有使用了键值对的地方,都运用到了哈希表思想。
4.使用实例
size;
$this->collection = new SplFixedArray($bucketsSize);
}
//生成散列值,作为存储数据的位置
private function _hashAlgorithm($key)
{
$length = strlen($key);
$hashValue = 0;
for($i=0; $i<$length; $i++) {
$hashValue += ord($key[$i]);
}
return ($hashValue%($this->size));
}
//在相应的位置存储对应的值
public function set($key, $val)
{
$index = $this->_hashAlgorithm($key);
$this->collection[$index] = $val;
}
//根据键生成散列值,进而找到对应的值
public function get($key)
{
$index = $this->_hashAlgorithm($key);
return $this->collection[$index];
}
//删除某个值,成功返回1,失败返回0
public function del($key)
{
$index = $this->_hashAlgorithm($key);
if(isset($this->collection[$index])) {
unset($this->collection[$index]);
return 1;
} else {
return 0;
}
}
//判断某个值是否存在,存在返回1, 不存在返回0
public function exist($key)
{
$index = $this->_hashAlgorithm($key);
if($this->collection[$index]){
return 1;
} else {
return 0;
}
}
//返回key的个数
public function size()
{
$size = 0;
$length = count($this->collection);
for($i=0; $i<$length; $i++) {
if($this->collection[$i]) {
$size++;
}
}
return $size;
}
//返回value的序列
public function val()
{
$size = 0;
$length = count($this->collection);
for($i=0; $i<$length; $i++) {
if($this->collection[$i]) {
echo $this->collection[$i]."
";
}
}
}
//排序输出
public function sort($type=1)
{
$length = count($this->collection);
$temp = array();
for($i=0; $i<$length; $i++) {
if($this->collection[$i]) {
$temp[] = $this->collection[$i];
}
}
switch ($type) {
case 1:
//正常比较
sort($temp, SORT_REGULAR);
break;
case 2:
//按照数字比较
sort($temp, SORT_NUMERIC);
break;
//按照字符串进行比较
case 3:
sort($temp, SORT_STRING);
break;
//根据本地字符编码环境进行比较
case 4:
sort($temp, SORT_LOCALE_STRING);
break;
}
echo "";
print_r($temp);
}
//逆序输出
public function rev($type=1)
{
$length = count($this->collection);
$temp = array();
for($i=0; $i<$length; $i++) {
if($this->collection[$i]) {
$temp[] = $this->collection[$i];
}
}
switch ($type) {
case 1:
//正常比较
rsort($temp, SORT_REGULAR);
break;
case 2:
//按照数字比较
rsort($temp, SORT_NUMERIC);
break;
//按照字符串进行比较
case 3:
rsort($temp, SORT_STRING);
break;
//根据本地字符编码环境进行比较
case 4:
rsort($temp, SORT_LOCALE_STRING);
break;
}
echo "";
print_r($temp);
}
}
//简单的测试
$list = new hashTable(200);
$list->set("zero", "zero compare");
$list->set("one", "first test");
$list->set("two", "second test");
$list->set("three", "three test");
$list->set("four", "fouth test");
echo $list->val();
echo "after sorted :
";
$list->rev(3);上述内容就是如何在php中使用哈希表,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
本文名称:如何在php中使用哈希表
文章转载:http://www.jxjierui.cn/article/jdgece.html


咨询
建站咨询
