如何去除数组中的数据
- 大家看这个代码
array (
'cid' => '9',
'pid' => '1',
),
2 =>
array (
'cid' => '8',
'pid' => '1',
),
3 =>
array (
'cid' => '6',
'pid' => '1',
),
4 =>
array (
'cid' => '4',
'pid' => '1',
),
5 =>
array (
'cid' => '11',
'pid' => '1',
),
),
2 =>
array (
0 =>
array (
'cid' => '7',
'pid' => '2',
),
),
3 =>
array (
0 =>
array (
'cid' => '5',
'pid' => '3',
),
),
)
我用下面的方法取出cids
foreach($data as $k=>$v){
$c[$k]=$v;
foreach($c[$k] as $d){
$cids[]=$d['cid'];
}
}
得到结果
array (
0 => '1',
1 => '2',
2 => '3',
3 => '10',
4 => '9',
5 => '8',
6 => '6',
7 => '4',
8 => '11',
9 => '7',
10 => '5',
)
这里是取到的所有cid,我只想取出pid不等于0的cid,如何取出呢?请指点,谢谢 了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其实循环就可以了,能解决问题就挺好的嘛~不过感觉用多重循环太不awesome了,所以就稍微修改了一下~
据说用循环不 awesome ..?
那我来继续稍微修改一下让程序更 awesome 一些好了 ...
其实我个人觉得这个问题的解决方案应该是先 array_map() 取值再用 array_filter() 过滤 ...
或者直接做 array_reduce() ... 因为原数组不仅改变了格式而且改变了大小 ...
不过既然楼上的宝二爷用了 array_walk() ... 我也写一个完全不用循环的类似实现好了 ...
这种实现方法的优点不考虑数组的维度 ... 多高维度的数组都可以处理 ...
缺点是每个小数组都要保证
cid
和pid
成对出现 ... 而且cid
需要永远在pid
前面 ...其实我就是来凑热闹的 ... 恩恩就是这样啦 ...