我在mvc做一个项目。我有读取和写入的复选框和2个ID。从表格我将收到以下格式的数据。我将得到int perm_id,读取我将以int数组的形式得到的值,例如int [] read = {1345},int [] write = {1235}
per_id read write
1 1 1
1 2
1 3 3
1 4
1 5 5
1 7 7
此处的权限ID相同。在读取时,值为1表示选中相应的复选框。在写入的第一列中,值为1,因此选中相应的复选框。在右下方的第二行中有null,因此再次取消选中相应的复选框,在写入下有一个值2,因此再次选中相应的复选框。在6行中,两个复选框都未选中,因此读取和写入为空。现在我想渲染上面的数据如下。
scrn_id perm_id read write
1 1 True true
2 1 false true
3 1 true true
4 1 true false
5 1 true true
7 1 true true
这是他需要格式保存在数据库中。我从最近几天尝试了很多方面,但我无法以requird格式保存数据。有谁能解决这个问题。提前谢谢。
答案 0 :(得分:0)
这似乎是位掩码的好地方:
#include <stdio.h>
#define BIT(n) (1U << (n))
int main(void)
{
unsigned rarr[] = {1, 3, 4, 5};
unsigned warr[] = {1, 2, 4, 5};
unsigned r = 0;
unsigned w = 0;
size_t i, n;
n = sizeof rarr / sizeof rarr[0];
for (i = 0; i < n; i++) {
r |= BIT(rarr[i]);
}
n = sizeof warr / sizeof warr[0];
for (i = 0; i < n; i++) {
w |= BIT(warr[i]);
}
printf("n read write\n");
for (n = 1; n <= 5; n++) {
printf("%zu %-5s %-5s\n", n,
r & BIT(n) ? "True" : "False",
w & BIT(n) ? "True" : "False"
);
}
return 0;
}
输出:
n read write
1 True True
2 False True
3 True False
4 True True
5 True True