PHP-用递归的方式删除PHP数组
数组如下
<?php
$sort_arr2=array (
0 =>
array (
'id' => '11',
'fid' => '8',
'name' => '2-2级',
'orderby' => '0',
'hidden' => '0',
),
1 =>
array (
'id' => '4',
'fid' => '0',
'name' => '1级',
'orderby' => '0',
'hidden' => '0',
),
2 =>
array (
'id' => '8',
'fid' => '0',
'name' => '2级',
'orderby' => '0',
'hidden' => '0',
),
3 =>
array (
'id' => '5',
'fid' => '4',
'name' => '1-2级',
'orderby' => '0',
'hidden' => '0',
),
4 =>
array (
'id' => '10',
'fid' => '8',
'name' => '2-1级',
'orderby' => '0',
'hidden' => '0',
),
5 =>
array (
'id' => '12',
'fid' => '10',
'name' => '2-1-1级',
'orderby' => '0',
'hidden' => '0',
),
)
?>
这个是个分类的数组,对应关系为id fid
└1级
└1-2级
└2级
└2-2级
└2-1级
└2-1-1级
我想删除指定的数组或者删除某个数组及其分类,所以写了个函数使用递归的方法,但是3级的还是删除不了,本人实在不知道怎么写了
function class_dell($tarray='',$id='')
{
if ( is_array($tarray) && count($tarray)>0 ) {
foreach($tarray as $key=>$v){
if ($id===$v['id']) {
unset ($tarray[$key]);
}
if ($id===$v['fid']) {
unset ($tarray[$key]);
$tarray=class_dell($tarray,$id=$v['id']) ;
}
}
}
return $tarray;
}
$l=array();
$l=class_dell($sort_arr2,$id='8');
print_r ($l);
求经验,求代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题今天晚上加班解决了,原因是自己的程序在参数传递矛盾了,
虽然解决了,但是还要谢谢大家