如何在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 ) 题 我如何优雅地组合这两个数组来创建一个“更改”数组,这样: >省略两者具有相同权限的用户 例如,结合上述内容将给出: [User1] => Array ([public] => 1 [private] => 1 [secret] => 0 ) [User2] => Array ([public] => 1 [private] => 0 [secret] => 1 ) 到目前为止的尝试 >作为第一步,我尝试使用array_merge(),其中第二个列出了表单数组,认为它会覆盖它们不同的数据库数组.相反,它删除了不同的元素. UPDATE 呼!一个新的答案引起了我对这个老问题的关注.我得到了这个工作,但后来我废弃了这个疯狂的代码 – 它太复杂了回去工作.相反,我编写了一个PHP后端脚本来一次更改一个权限,然后写了一个AJAX前端来发送更改.更简单的代码,并且对用户的更改是即时的.突出显示效果可即时提供有关已更改内容的页面反馈. 解决方法
这可能是您正在寻找的:
array_diff() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |