<?php
$arr = Array
(
0 => Array
(
'id' => 134,
'fid' => 0,
'name' => 't',
'path' => 134,
'_sub' => Array
(
0 => Array
(
'id' => 136,
'fid' => 134,
'name' => '我是t的分类t2',
'path' => '134,136'
),
1 => Array
(
'id' => 135,
'fid' => 134,
'name' => '我是t的分类t1',
'path' => '134,135'
)
)
),
1 => Array
(
'id' => 133,
'fid' => 0,
'name' => 'k',
'path' => 133,
'_sub' => Array
(
0 => Array
(
'id' => 137,
'fid' => 133,
'name' => '我是k的分类1',
'path' => '133,137',
'_sub' => Array
(
0 => Array
(
'id' => 138,
'fid' => 137,
'name' => '我是k的分类1-1',
'path' => '133,137,138',
'_sub' => Array
(
0 => Array
(
'id' => 139,
'fid' => 138,
'name' => '我是k的分类1-1-1',
'path' => '133,137,138,139',
'_sub' => Array
(
0 => Array
(
'id' => 140,
'fid' => 139,
'name' => '我是k的分类1-1-1-1',
'path' => '133,137,138,139,140'
)
)
)
)
)
)
)
)
),
2 => Array
(
'id' => 132,
'fid' => 0,
'name' => 'j',
'path' => 132
)
);
$temp = array();function test($array,&$temp) {
foreach ($array as $k=>$v) { if (array_key_exists('_sub', $v)) {
$temp[]=array_slice($v, 0,4);
test($v['_sub'],$temp);
} else {
array_push($temp, $v);
}
}
}
test($arr,$temp);
print_r($temp);?>
$arr = Array
(
0 => Array
(
'id' => 134,
'fid' => 0,
'name' => 't',
'path' => 134,
'_sub' => Array
(
0 => Array
(
'id' => 136,
'fid' => 134,
'name' => '我是t的分类t2',
'path' => '134,136'
),
1 => Array
(
'id' => 135,
'fid' => 134,
'name' => '我是t的分类t1',
'path' => '134,135'
)
)
),
1 => Array
(
'id' => 133,
'fid' => 0,
'name' => 'k',
'path' => 133,
'_sub' => Array
(
0 => Array
(
'id' => 137,
'fid' => 133,
'name' => '我是k的分类1',
'path' => '133,137',
'_sub' => Array
(
0 => Array
(
'id' => 138,
'fid' => 137,
'name' => '我是k的分类1-1',
'path' => '133,137,138',
'_sub' => Array
(
0 => Array
(
'id' => 139,
'fid' => 138,
'name' => '我是k的分类1-1-1',
'path' => '133,137,138,139',
'_sub' => Array
(
0 => Array
(
'id' => 140,
'fid' => 139,
'name' => '我是k的分类1-1-1-1',
'path' => '133,137,138,139,140'
)
)
)
)
)
)
)
)
),
2 => Array
(
'id' => 132,
'fid' => 0,
'name' => 'j',
'path' => 132
)
);
$temp = array();function test($array,&$temp) {
foreach ($array as $k=>$v) { if (array_key_exists('_sub', $v)) {
$temp[]=array_slice($v, 0,4);
test($v['_sub'],$temp);
} else {
array_push($temp, $v);
}
}
}
test($arr,$temp);
print_r($temp);?>
foreach($ar as $v) $t[$v['id']] = $v;
foreach ($t as $k => $item){
$t[$k]['path'] = $item['id'];
if( $item['fid'] ) {
$t[$item['fid']]['_sub'][$item['id']] =& $t[$k];
$t[$k]['path'] = $t[$item['fid']]['path'] . ',' . $t[$k]['id'];
}
}
return $t;
}
$a=array (
0 =>
array (
'id' => '134',
'fid' => '0',
'name' => 't',
),
1 =>
array (
'id' => '133',
'fid' => '0',
'name' => 'k',
),
2 =>
array (
'id' => '132',
'fid' => '0',
'name' => 'j',
),
3 =>
array (
'id' => '137',
'fid' => '133',
'name' => '我是k的分类1',
),
4 =>
array (
'id' => '136',
'fid' => '134',
'name' => '我是t的分类t2',
),
5 =>
array (
'id' => '135',
'fid' => '134',
'name' => '我是t的分类t1',
),
6 =>
array (
'id' => '138',
'fid' => '137',
'name' => '我是k的分类1-1',
),
7 =>
array (
'id' => '139',
'fid' => '138',
'name' => '我是k的分类1-1-1',
),
8 =>
array (
'id' => '140',
'fid' => '139',
'name' => '我是k的分类1-1-1-1',
),
);$r = find_child($a);
foreach($r as $k=>$v) if(isset($v['_sub'])) unset($r[$k]['_sub']);
print_r($r);
Array
(
[134] => Array
(
[id] => 134
[fid] => 0
[name] => t
[path] => 134
) [133] => Array
(
[id] => 133
[fid] => 0
[name] => k
[path] => 133
) [132] => Array
(
[id] => 132
[fid] => 0
[name] => j
[path] => 132
) [137] => Array
(
[id] => 137
[fid] => 133
[name] => 我是k的分类1
[path] => 133,137
) [136] => Array
(
[id] => 136
[fid] => 134
[name] => 我是t的分类t2
[path] => 134,136
) [135] => Array
(
[id] => 135
[fid] => 134
[name] => 我是t的分类t1
[path] => 134,135
) [138] => Array
(
[id] => 138
[fid] => 137
[name] => 我是k的分类1-1
[path] => 133,137,138
) [139] => Array
(
[id] => 139
[fid] => 138
[name] => 我是k的分类1-1-1
[path] => 133,137,138,139
) [140] => Array
(
[id] => 140
[fid] => 139
[name] => 我是k的分类1-1-1-1
[path] => 133,137,138,139,140
))