我的目标是根据角色权重列出所有较小的用户,例如,如果用户U1具有权重为10的R1的角色,并且U2具有权重为2的R2且U3具有权重为R3 5.输出将是(U1,U2)(U1,U3)(U3,U2)和(U2,Null)。列出第一行的所有较小用户,但似乎是在第一个循环的休息时间。这里是我的代码谢谢为什么在第一个循环中循环中断
<?php
$uids = array(8,9,10,11,12,13,14,15);
$result = db_query("SELECT u.uid, u.rid, r.name, r.weight FROM {role} r INNER JOIN {users_roles} u ON u.rid = r.rid WHERE u.uid IN (:uids)", array(':uids' => $uids));
$i = 0;
for ($i = 0; $role = $result->fetchAssoc(); ++$i) {
print $role['uid'].',';
foreach($result as $urole) {
if ($role['weight'] > $urole->weight) {
echo '(' . $role['uid'] . ',' . $urole->uid . ')';
}
}
}
?>
您是否尝试过使用,同时,而不是for循环? – Goikiu
'$ role = $ result-> fetchAssoc()'在for循环中是原因。 –