PHP开发中常用的数据排列方法

专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业平泉免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

>一、大小排列(冒泡排序)

主要运用于数组数字大小排序

functionmaopaoSort(&$arr){
//必须是&$arr,传一个地址,如果是$arr,根据函数调用机制,排序将无法生效
$temp=0;//中间变量
$flag=false;
//外层循环控制循环次数
for($i=0;$i<count($arr)-1;$i++){
//内层循环控制每一次循环的交换
for($j=0;$j<count($arr)-1-$i;$j++){
//若前面的数比后面的数大,则交换
if($arr[$j]>$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
$flag=true;
}
}
if(!$flag){
//已经是有序
break;
}
$flag=false;
}
return$arr;
}

二、构建产品参数(递归)

主要运用于商品的多个参数之间的所有组合
/*构建商品参数集*/
functionbrush($res=[],$arr=[])
{
if(empty($res))$res=(array)array_shift($arr);
if(empty($arr))return$res;
$current=array_shift($arr);#接下来要参与计算的一组属性
$last=[];
foreach($resas$row=>$row_val){#循环上一次已经算出的集合
foreach($currentas$col=>$col_val){
$last[]=$row_val.'_'.$col_val;

}
}
returnbrush($last,$arr);#递归处理,直到$arr滚到最后一组属性
}

示例:color:
Red,black
AvailableMetals:
YellowGold,WhiteGold,RoseGold,Platinum
AvailabletofittheseCenterStoneShapes:
图形1,图形2,图形3,图形4
如图:循环出所有的产品参数组合

三,树状排列

主要应用于分类排列先找出一级分类再找一级分类下的二级类以此类推

/**
*无限分类-权限
*@paramarray$cate栏目
*@paramstring$lefthtml分隔符
*@paramint$pid父ID
*@paramint$level层级
*@returnarray
*/
publicstaticfunctioncateTree($cate,$name='title',$lefthtml='|—',$pid=0,$level=0){
$arr=array();
foreach($cateas$v){
if($v['pid']==$pid){
$v['level']=$level+1;
$v['lefthtml']=str_repeat($lefthtml,$level);
$v['l'.$name]=$v['lefthtml'].lang($v[$name]);
$arr[]=$v;
$arr=array_merge($arr,self::cateTree($cate,$name,$lefthtml,$v['id'],$level+1));
}
}
return$arr;
}

网站题目:PHP开发中常用的数据排列方法
文章URL:https://www.cdcxhl.com/article8/ecsjip.html

成都网站建设公司_创新互联,为您提供标签优化网站内链网站排名网站改版建站公司定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司