【问题标题】:compare 2 arrays and update one to always be identical to the other比较 2 个数组并将一个更新为始终与另一个相同
【发布时间】:2018-08-08 14:18:08
【问题描述】:

我有 2 个数组,一个包含数据库中的值,另一个包含当前选中的复选框。我想比较两者,并想根据当前选择的复选框列表 ($page_view_domains) 更新或删除数据库值列表 ($db_domains) 中的记录。这样,包含数据库值的数组始终依赖于选中的复选框列表。

$db_domains = array($domain->id); 
$page_view_domains = array($form_entry->{"domain_$domain->id"});
$results = array_diff($db_domains, $page_view_domains); 

我将差异存储在 $results 变量中,但不知道如何处理它。

【问题讨论】:

  • 从这个问题中不清楚你到底想要做什么。也许添加一些示例数据和您的预期结果
  • 简单地比较 2 个数组并使特定的一个 ($db_domain) 的值始终与另一个 ($page_view_domains) 的值相匹配...提交到数据库。
  • $db_domain = $page_view_domains;

标签: php sql-server moodle moodle-api


【解决方案1】:

array_diff 在这种情况下将为您提供您需要删除的值,因为它是 db 中的内容,但在表单值中不存在。所以你只需迭代这个数组并删除值。

array_diff 向后应用$tocreate = array_diff($page_view_domains, $db_domains); 将为您提供您需要在数据库中创建的值。所以你迭代它并创建记录。

据我了解,其他记录应该保持不变,因为它们只是 id,而不是结构

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2012-08-21
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2016-06-18
    • 2018-08-04
    相关资源
    最近更新 更多