php 两个数组差异,如何在PHP中比较两个数组和列表差异?

我正在构建一个表单来执行以下操作:

>打印一个用户和权限表,从MySQL中提取.用户拥有的每个权限都是一个复选框,他们缺少的每个权限都是一个未选中的框.

>允许管理员选中和取消选中框以授予或删除权限.

>提交表单后,只显示一个确认页面,其中只包含权限将被更改的用户,突出显示特定的更改.

>确认更改后,相应地修改数据库.

为此,我创建了两个用户权限数组:一个根据数据库显示的内容,另一个根据表单显示的内容.

如果用户在MySQL中缺少权限,则它将显示为0.如果他们在表单提交中缺少权限,则它将不存在.

以下是两个简单的数组示例:

数据库数组

[User1] => Array ([public] => 1

[private] => 1

[secret] => 1

)

[User2] => Array ([public] => 1

[private] => 0

[secret] => 0

)

表单提交数组(从User1撤消“秘密”并将其提供给User2)

[User1] => Array ([public] => 1

[private] => 1

)

[User2] => Array ([public] => 1

[secret] => 1

)

我如何优雅地组合这两个数组来创建一个“更改”数组,这样:

>省略两者具有相同权限的用户

>剩余用户将所有权限(public,private和secret)设置为0或1.

>如果表单提交数组中缺少每个权限,则为0;如果表单提交数组中,则为1

例如,结合上述内容将给出:

[User1] => Array ([public] => 1

[private] => 1

[secret] => 0

)

[User2] => Array ([public] => 1

[private] => 0

[secret] => 1

)

到目前为止的尝试

>作为第一步,我尝试使用array_merge(),其中第二个列出了表单数组,认为它会覆盖它们不同的数据库数组.相反,它删除了不同的元素.

>我已经尝试设置foreach()语句来比较两个数组,但它变得复杂了,我认为必须有一个更简单的方法

UPDATE

呼!一个新的答案引起了我对这个老问题的关注.我得到了这个工作,但后来我废弃了这个疯狂的代码 – 它太复杂了回去工作.相反,我编写了一个PHP后端脚本来一次更改一个权限,然后写了一个AJAX前端来发送更改.更简单的代码,并且对用户的更改是即时的.突出显示效果可即时提供有关已更改内容的页面反馈.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值