####### 基本的数据结构 ########
创新互联公司专注于企业全网营销推广、网站重做改版、奎屯网站定制设计、自适应品牌网站建设、H5技术、购物商城网站建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为奎屯等各大城市提供网站开发制作服务。
//二分查找(数组里查找某个元素)
function bin_sch($array, $low, $high, $k){
if ($low = $high){
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k $array[$mid]){
return bin_sch($array, $low, $mid-1, $k);
}else{
return bin_sch($array, $mid+1, $high, $k);
}
}
return -1;
}
//线性表的删除(数组中实现)
function delete_array_element($array, $i)
{
$len = count($array);
for ($j=$i; $j$len; $j++){
$array[$j] = $array[$j+1];
}
array_pop($array);
return $array;
}
//冒泡排序(数组排序)
function bubble_sort($array)
{
$count = count($array);
if ($count = 0) return false;
for($i=0; $i$count; $i++){
for($j=$count-1; $j$i; $j--){
if ($array[$j] $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
//快速排序(数组排序)
function quicksort($array) {
if (count($array) = 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $icount($array); $i++){
if ($array[$i] = $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quicksort($left_arr);
$right_arr = quicksort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
####### 自实现函数 #######
//插入一段字符串
function str_insert($str, $i, $substr)
{
for($j=0; $j$i; $j++){
$startstr .= $str[$j];
}
for ($j=$i; $jstrlen($str); $j++){
$laststr .= $str[$j];
}
$str = ($startstr . $substr . $laststr);
return $str;
}
//删除一段字符串
function str_delete($str, $i, $j)
{
for ($c=0; $c$i; $c++){
$startstr .= $str[$c];
}
for ($c=($i+$j); $cstrlen($str); $c++){
$laststr .= $str[$c];
}
$str = ($startstr . $laststr);
return $str;
}
//复制字符串
function strcpy($s1, $s2)
{
if (strlen($s1)==NULL || !isset($s2)) return;
for ($i=0; $istrlen($s1); $i++){
$s2[] = $s1[$i];
}
return $s2;
}
//连接字符串
function strcat($s1, $s2)
{
if (!isset($s1) || !isset($s2)) return;
$newstr = $s1;
for($i=0; $icount($s); $i++){
$newstr .= $st[$i];
}
return $newsstr;
}
//简单编码函数(与php_decode函数对应)
function php_encode($str)
{
if ($str=='' strlen($str)128) return false;
for($i=0; $istrlen($str); $i++){
$c = ord($str[$i]);
if ($c31 $c107) $c += 20;
if ($c106 $c127) $c -= 75;
$word = chr($c);
$s .= $word;
}
return $s;
}
//简单解码函数(与php_encode函数对应)
function php_decode($str)
{
if ($str=='' strlen($str)128) return false;
for($i=0; $istrlen($str); $i++){
$c = ord($word);
if ($c106 $c127) $c = $c-20;
if ($c31 $c107) $c = $c+75;
$word = chr($c);
$s .= $word;
}
return $s;
}
//简单加密函数(与php_decrypt函数对应)
function php_encrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if (strlen($str) == 0) return false;
for ($i=0; $istrlen($str); $i++){
for ($j=0; $jstrlen($encrypt_key); $j++){
if ($str[$i] == $encrypt_key[$j]){
$enstr .= $decrypt_key[$j];
break;
}
}
}
return $enstr;
}
//简单解密函数(与php_encrypt函数对应)
function php_decrypt($str)
{
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if (strlen($str) == 0) return false;
for ($i=0; $istrlen($str); $i++){
for ($j=0; $jstrlen($decrypt_key); $j++){
if ($str[$i] == $decrypt_key[$j]){
$enstr .= $encrypt_key[$j];
break;
}
}
}
return $enstr;
}
到此为止吧:)
这是序列化数据,可以使用php的反序列化函数直接转换为数据:unserialize
数组就是典型的数据结构了,使用数组操作函数,就可以实现单向和多向队列了。
操作函数有:
array_shift
array_unshift
array_push
array_pop
PHP中的 explode() 函数可以实现此功能
语法
explode(separator,string,limit)
参数 描述
separator 必需,规定在哪里分割字符串。
string 必需,要分割的字符串。
limit 可选,规定所返回的数组元素的数目。
例如:
?php
$str = 'one
two
three
four';
$array = explode("\n",$str);
print_r($array);
?
输出如下:
Array
(
[0] = one
[1] = two
[2] = three
[3] = four
)