无级分类

/**

  • 无限分类函数
  • @param $items array 原始数据
  • @param string $id 主键
  • @param string $pid 标识id
  • @param bool $closed 超过2级是否显示
  • @param string $son 子元素名称
  • @param array $strArray 替换信息
  • @param bool $is_id text是否拼接id
  • @param bool $is_new 是否返回新数组
  • @return array */ public static function genTree($items, $id = 'id', $pid = 'pid', $closed = false, $son = 'children', $strArray = [], $is_id = false, $is_new = false){ $tree = array(); // 格式化的树 $tmpMap = array(); // 临时扁平数据 $arr = []; //新数组 $arrMap = array(); // 临时扁平数据 foreach ($items as $item) { if ($strArray) { foreach ($strArray as $k => $v) { if ($v === 'text' && $is_id === true) { $item[$v] = $item[$k] . '--' . $item['id']; }else { $item[$v] = $item[$k]; } } }

if ($closed === true && isset($item['pid_url'])) { $count = substr_count($item['pid_url'], ','); if ($count > 2) { //是否存在子节点 foreach ($items as $k => $v) { if ($item[$id] === $v[$pid]) { $item['state'] = 'closed'; } } } } $tmpMap[$item[$id]] = $item; if ($is_new) { $as = []; foreach ($strArray as $k => $v) { $as[$v] = $item[$v]; }

$arrMap[$item[$id]] = $as; } }

foreach ($items as $item) { if (isset($tmpMap[$item[$pid]])) { $tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]]; $arrMap[$item[$pid]][$son][] = &$arrMap[$item[$id]]; }else { $tree[] = &$tmpMap[$item[$id]]; $arr[] = &$arrMap[$item[$id]]; } } if ($is_new) { return $arr; } return $tree; }

/**

  • 位运算操作处理函数 **/ function myfunction(&$value, $key){ $value="yellow"; } $a = array("a"=>'red', "b"=>"green", "c"=>"blue"); array_walk($a, "myfunction"); print_r($a); //结果 Array ( [a] => yellow [b] => yellow [c] => yellow )

会飞的鱼博客
请先登录后发表评论
  • latest comments
  • 总共1条评论
会飞的鱼博客

xiaodz19920625 :加油!

2022-02-13 13:35:50 回复