十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了php数组遍历类与用法。分享给大家供大家参考,具体如下:
10多年的安陆网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整安陆建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“安陆网站设计”,“安陆网站推广”以来,每个客户项目都认真落实执行。
?php
class
scanArray{
public
$arr;
public
$where;
private
$str;
public
function
scan($arr,$where="array"){
$this-arr
=
$arr;
$this-where
=
$where;
foreach($this-arr
as
$k=$v){
if(is_array($v)){
$this-where
=
($this-where)."[{$k}]";
$this-scan($v,$this-where);
}else{
$this-str
.=
$this-where."[{$k}]=".$v.'br
/';
}
}
return
$this-str;
}
function
__destruct(){
unset($this-arr);
unset($this-where);
}
}
$a
=
array('g'="a",'vv'=array("b"="b","l"="c","xx"=array("e","g")));
$ah
=
new
scanArray();
$b
=
$ah-scan($a);
echo
$b;
运行结果:
array[g]=a
array[vv][b]=b
array[vv][l]=c
array[vv][xx][0]=e
array[vv][xx][1]=g
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:PHP遍历数组的方法汇总PHP
数组遍历方法大全(foreach,list,each)PHP
数组遍历foreach语法结构及实例PHP中多维数组的foreach遍历示例php实现遍历多维数组的方法PHP中使用foreach()遍历二维数组的简单实例PHP遍历数组的三种方法及效率对比分析PHP实现的操作数组类库定义与用法示例PHP数组操作类实例PHP数组生成XML格式数据的封装类实例
####### 基本的数据结构 ########
//二分查找(数组里查找某个元素)
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实现的基本的数据结构和算法,什么二叉树、二叉搜索树、AVL树、B树、链表和常见排序、搜索算法等等,而且全部是使用面向对象来实现的,确是是很强。
数据结构可以使你的代码更加的规范,并且有助于开发效率,为你的数据设计一个好的数据结构,你会发现你的代码写起来很顺心,相反一个垃圾数据结构会使你调用数据的时候出现很多麻烦,而且好的数据结构对代码的运行效率也至关重要;
至于说算法,那是高深的事件解决方法,是解决特定问题的一半解决思路。
总起来说,初级的话数据结构要了解一些,不用太高深,算法了解多少无所谓,但随着经验的逐步提高,数据结构和算法也会跟着经验的提高而有更深刻的理解,在返回来学习会起到事半功倍之效。高级程序员数据结构和算法是必不可缺的刀!
不建议直接用php来做队列,php的array操作虽然勉强能做伪队列,但问题也来了,如果是大量的数据呢?php会不会内存问题直接挂了?
建议:测试的话用用还凑合,但真正去用的话双向队列,用redis的list类型吧,可以满足你的需求,同时数量级上也不是问题,单向队列
httpsqs,rabbitmq等
再看看别人怎么说的。