本文目录一览:
- 1、php 几种常用的递归 无限极分类
- 2、php 递归分类 $arr = array() 具体作用
- 3、php递归拼接数组
- 4、PHP:数值数组叠加的递归方法
- 5、PHP 递归处理数组,并组合成新的数组
php 几种常用的递归 无限极分类
/**
* 递归实现无限极分类
* @param $array 分类数据
* @param $pid 父ID
* @param $level 分类级别
* @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进
*/
function getTree($array, $pid =0, $level = 0){
//声明静态数组,避免递归调用时,多次声明导致数组覆盖
static $list = []; foreach ($array as $key = $value){ //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点-phparray递归
if ($value['pid'] == $pid){ //父节点为根节点的节点,级别为0,也就是第一级
$value['level'] = $level; //把数组放到list中
$list[] = $value; //把这个节点从数组中移除,减少后续递归消耗
unset($array[$key]); //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1
getTree($array, $value['id'], $level+1);
}
}
php 递归分类 $arr = array() 具体作用
$arr = array(); 只是 定义 数组 而且是在 循环外边定义的 当然不会清空数组,
就是在循环外边定义一个数组
然后在 循环里边 给它赋值。。
php递归拼接数组
你的循环有问题,递归的时候没有重新赋值
while($row=mysql_fetch_array($res)){
array_push($arr,$row['ID']);
$arr = $this-push_id($arr,$row['ID']);//注意这行
}
PHP:数值数组叠加的递归方法
-数值数组叠加的递归方法:几个相同格式的数组的对应项叠加,得到一个此种格式的数组
-@param array(数组1, 数组2, ...)
-@return array 数组为上面数组1,数组2,...的对应项叠加
PHP 递归处理数组,并组合成新的数组
/**
* 多维数组递归合并
*/
function multimerge(){
$arrs = func_get_args();
$merged = array();
while($arrs){
$array = array_shift($arrs);
if(!$array){
continue;
}
foreach ($array as $key = $value){
if (is_string($key)){
if (is_array($value) array_key_exists($key, $merged) is_array($merged[$key])){
$merged[$key] = call_user_func(__FUNCTION__, $merged[$key], $value);
}else{
$merged[$key] = $value;
}
}else{
$merged[] = $value;
}
}
}
return $merged;
}
$a1 = array('user' = array('name' = 'tony', 'score' = 23));
$a2 = array('user' = array('name' = 'tony', 'score' = 255), 'name' ='tom');
$a3 = array('user' = array('name' = 'tony', 'score' = 288, 'test' = 'abc'), 'name' ='jack');
$result= multimerge($a1, $a2, $a3);
var_dump($result);