```
<?php
//从数据库中取出的分类数据
$original_array(
array(
'id' => 1,
'pid' => 0,
'name' => '新闻分类'
),
array(
'id' => 2,
'pid' => 0,
'name' => '最新公告'
),
array(
'id' => 3,
'pid' => 1,
'name' => '国内新闻'
),
array(
'id' => 4,
'pid' => 1,
'name' => '国际新闻'
),
array(
'id' => 5,
'pid' => 0,
'name' => '图片分类'
),
array(
'id' => 6,
'pid' => 5,
'name' => '新闻图片'
),
array(
'id' => 7,
'pid' => 5,
'name' => '其它图片'
),
),
//整理后的分类数据
$output_array = array(
array(
'id' => 1,
'pid' => 0,
'name' => '新闻分类',
'children' => array(
array(
'id' => 3,
'pid' => 1,
'name' => '国内新闻'
),
array(
'id' => 4,
'pid' => 1,
'name' => '国际新闻'
),
),
),
array(
'id' => 2,
'pid' => 0,
'name' => '最新公告',
),
array(
'id' => 5,
'pid' => 0,
'name' => '图片分类',
'children' => array(
array(
'id' => 6,
'pid' => 5,
'name' => '新闻图片'
),
array(
'id' => 7,
'pid' => 5,
'name' => '其它图片'
),
),
),
);
//整理函数
/**
* 生成无限级树算法
* @author Baiyu 2014-04-01
* @param array $arr 输入数组
* @param number $pid 根级的pid
* @param string $column_name 列名,id|pid父id的名字|children子数组的键名
* @return array $ret
*/
function make_tree($arr, $pid = 0, $column_name = 'id|pid|children') {
list($idname, $pidname, $cldname) = explode('|', $column_name);
$ret = array();
foreach ($arr as $k => $v) {
if ($v [$pidname] == $pid) {
$tmp = $arr [$k];
unset($arr [$k]);
$tmp [$cldname] = make_tree($arr, $v [$idname], $column_name);
$ret [] = $tmp;
}
}
return $ret;
}
//整理函数的使用
$output_array = make_tree($original_array);
```
- 一维数组操作方法
- 求得这个数组中各个元素之和
- 取出两个数组中相同的内容
- 将数组元素组合为字符串implode
- 将字符串转化为数组explode
- 逗号分割的字符串去重
- 一维数组增加某个值
- PHP从数组中找到指定元素的位置
- 二维或多维数组操作方法
- 根据某一个键值合并生成一个新的二维数组
- 二维数组变一维数组
- 二维数组取一个值变一维数组
- php二维数组合并及去重复的方法
- php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- 二维数组增加一个值
- 生成无限级树算法
- sql2md SQL转化为markdown语法
- PHP修改多维数组中的某个值
- 二维数组
- 省市区联动的查询
- PHP求某二维数组,某一列元素的最大最小值
- php 求二维数组的差集
- 按某个键值排序
- 基本知识
- 键名作为键值
- PHP中foreach的用法和实例
- PHP foreach 循环案例
- php5.3以后的foreach的&符号不建议使用
- PHP中判断变量为空的几种方法小结
- 判断PHP数组是否为空的代码
- php删除数组中指定值的元素的几种方法
- PHP删除数组中的指定元素
- php数组函数序列之array_keys() - 获取数组键名
- php 中更简洁的三元运算符 ?:
- 函数
- 字符串函数
- 数组函数
- 实例
- 将 $arr 中age大于第一个大于30的人增加一项一条信息
- 强大的数组函数