我的目標是根據角色權重列出所有較小的用戶,例如,如果用戶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循環中是原因。 –