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

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

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

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

functionmaopaoSort(&$arr){
//必须是&$arr,传一个地址,如果是$arr,根据函数调用机制,排序将无法生效
$temp=0;//中间变量
$flag=false;
//外层循环控制循环次数
for($i=0;$i//内层循环控制每一次循环的交换
for($j=0;$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开发中常用的数据排列方法
文章源于:http://pwwzsj.com/article/ecsjip.html