PHP foreach遍历问题
本文介绍了PHP foreach遍历问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我想学生里,teach_user值输出是老师。而不是老师里输出学生的值。
id pid name
1 0 老师1
2 0 老师2
3 1 学生1
4 1 学生2
5 2 学生3
学生1 teach_user 值里调出 老师1
学生2 teach_user 值里调出 老师1
学生3 teach_user 值里调出 老师2
数组:
Array
(
[1] => Array
(
[id] => 1
[pid] => 0
[truename] => 老师1
[groupid] => 1
[teach_user] => Array
(
)
)
[2] => Array
(
[id] => 2
[pid] => 0
[truename] => 老师2
[groupid] => 1
[teach_user] => Array
(
)
)
[4] => Array
(
[id] => 4
[pid] => 1
[truename] => 学生1
[regtime] => 1479318572
[groupid] => 2
[teach_user] => Array
(
)
)
[5] => Array
(
[id] => 5
[pid] => 1
[truename] => 学生2
[groupid] => 2
[teach_user] => Array
(
)
)
[6] => Array
(
[id] => 6
[pid] => 2
[username] => ls01
[truename] => 学生3
[groupid] => 2
[teach_user] => Array
(
)
)
想学生循环输出 ,然后老师在teach_user 值里。each_user里的值对应学生pid:
想要效果如下:
[0] => Array
(
[id] => 10
[pid] => 1
[truename] =>学生1
[groupid] => 2
[teach_user] => Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[truename] => 老师1
[groupid] => 1
[teach_user] => Array
[teach_user] => Array
(
)
)
)
[1] => Array
(
[id] => 10
[pid] => 1
[truename] =>学生2
[groupid] => 2
[teach_user] => Array
(
[0] => Array
(
[id] => 1
[pid] => 0
[truename] => 老师1
[groupid] => 1
[teach_user] => Array
[teach_user] => Array
(
)
)
)
[2] => Array
(
[id] => 10
[pid] => 2
[truename] =>学生3
[groupid] => 2
[teach_user] => Array
(
[0] => Array
(
[id] => 2
[pid] => 0
[truename] => 老师2
[groupid] => 1
[teach_user] => Array
(
)
(
)
)
)
。。。。。
)
PHP循环写法:
$tree = array();
foreach($数据库 as $v){
$tree[$v['id']] = $v;
$tree[$v['id']]['teach_user'] = array();
}
foreach($tree as $m=>$n){
if($n['tid'] != 0){
$tree[$n['tid']]['teach_user'][] = &$tree[$m];
}
}
我这样些感觉不对。
解决方案
不知道我理解的对不对,你是想一次性读取所有数据,每个学生对应的老师信息在学生信息数组里面,(不是所有的老师吧?)
foreach($all_info as $t_key => $t_info){
if($t_info['pid']==0){
$teacher_info[$t_info['id']] = $t_info;
unset($all_info[$t_key]);
}
}
foreach($all_info as $s_key => $s_info){
if(array_key_exists($s_info['pid'],$teacher_info)){
$all_info[$s_key]['teach_user'] = $teacher_info[$s_info['pid']];
}
}
小白一个希望可以帮到你
这篇关于PHP foreach遍历问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文