php递归遍历多维数组,合并重复值并记要重复次数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php递归遍历多维数组,合并重复值并记要重复次数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2688字,纯文字阅读大概需要4分钟。
内容图文
![php递归遍历多维数组,合并重复值并记要重复次数](/upload/InfoBanner/zyjiaocheng/231/e7cdf0ec202d4e1e8e81e3f5d334bdc0.jpg)
header('Content-type: text/html; charset=utf-8');
//以下是原始数组
$array = array(
0=>array(
0=>array(
'text' => '体育',
'children' => array(
0=>array(
'text' => '篮球',
'grade' => '1'
),
1=>array(
'text' => '足球',
'grade' => '3'
)
)
),
1=>array(
'text' => '音乐',
'children' => array(
0=>array(
'text' => '唱歌',
'children' => array(
0=>array(
'text' => '儿歌三百首',
'grade' => '1'
)
)
),
1=>array(
'text' => '跳舞',
'grade' => '3'
)
)
)
),
1=>array(
0=>array(
'text' => '体育',
'children' => array(
0=>array(
'text' => '篮球',
'grade' => '2'
),
1=>array(
'text' => '排球',
'grade' => '5'
)
)
),
1=>array(
'text' => '音乐',
'children' => array(
0=>array(
'text' => '唱歌',
'children' => array(
0=>array(
'text' => '儿歌三百首',
'grade' => '4'
)
)
)
)
)
),
);
//要求:递归遍历原始多维数组,将重复键值合并并累加grade值,以及记录重复次数。如:体育->篮球,经过处理后grade值为1+2=3,重复个数则为2(注:多维数组层级不定)
//以下是想要的到的结果
$newarray = array(
0=>array(
0=>array(
'text' => '体育',
'children' => array(
0=>array(
'text' => '篮球',
'grade' => '3',
'count' => '2'
),
1=>array(
'text' => '足球',
'grade' => '3',
'count' => '1'
),
2=>array(
'text' => '排球',
'grade' => '5',
'count' => '1'
)
)
),
1=>array(
'text' => '音乐',
'children' => array(
0=>array(
'text' => '唱歌',
'children' => array(
0=>array(
'text' => '儿歌三百首',
'grade' => '5',
'count' => '2'
)
)
),
1=>array(
'text' => '跳舞',
'grade' => '3',
'count' => '1'
)
)
)
)
);
------解决方案--------------------
这个不会!帮你顶起来
------解决方案--------------------
昨天晚上研究这个题目6个小时,最后抱着参考手册找各种数组函数,结果还是没做出来。
------解决方案--------------------
降维还是必须的
然后是修改函数还是再写个函数都可以的
function untree($ar, $pid=0) {Array
$res = array();
foreach((array)$ar as $v) {
if(is_numeric(key($v))) {
$res = array_merge($res, untree($v));
continue;
}
if(! isset($v['pid'])) $v['pid'] = $pid;
if(isset($v['children'])) {
$t = $v['children'];
unset($v['children']);
}
$res[] = $v;
if(! empty($t)) $res = array_merge($res, untree($t, $v['id']));
}
return $res;
}
(
[0] => Array
(
[id] => 87073074
[pid] => 0
[text] => 白田最新範疇
)
[1] => Array
(
[id] => 67852256
[pid] => 87073074
[text] => 範疇知識
)
[2] => Array
(
[id] => 44740741
[pid] => 67852256
[text] => 體能與健康
)
[3] => Array
(
[id] => 66256396
内容总结
以上是互联网集市为您收集整理的php递归遍历多维数组,合并重复值并记要重复次数全部内容,希望文章能够帮你解决php递归遍历多维数组,合并重复值并记要重复次数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。