网站建设资讯

日韩中文字幕在线观看 PHP开发中常用的数据排列方法

网站建设 2021-10-28 09:23:04 | 阅读:1060 | 作者:刘红旺 | 标签:PHP开发
一、大小排列(冒泡排序)

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

function maopaoSort(&$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;
}

PHP代码

JSON数组

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

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

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

示例:color:
Red,black
Available Metals:
Yellow Gold,White Gold,Rose Gold,Platinum
Available to fit these Center Stone Shapes:
图形1,图形2,图形3,图形4
如图:循环出所有的产品参数组合
展示
数据展示2

三,树状排列

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

树状排列

/**
     * 无限分类-权限
     * @paramarray  $cate         栏目
     * @paramstring  $lefthtml 分隔符
     * @paramint  $pid         父ID
     * @paramint  $level         层级
     * @returnarray
     */
public static function cateTree($cate ,$name='title', $lefthtml = '|— ' , $pid = 0 , $level = 0 ){
$arr = array();
foreach ($cate as $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;
}

效果
亚洲日韩欧美中字视频香港AAA级黄片在线在线播放亚洲黄色电影在线免费观看一级黄片中国黄色精品影视酉线在线观看视频三级国产中文字幕乱码亚洲精品在线播放AⅤ侠COm这里有精品国产日韩在三级久久蜜桃电影av中文字幕无码在线播放