简体   繁体   English

更新多对多关系的优雅方法

[英]elegant way to update many-to-many relationship

Currently to update many-to-many relationship I am iterating old list and current list to find which items were changed. 当前要更新多对多关系,我正在迭代旧列表和当前列表以查找更改了哪些项目。 For example: 例如:

$new = array('apple', 'orange');
$old = array('banana');

$added = array();

foreach($new as $v)
{
    if(!in_array($v, $old))
    {
        $added[] = $v;
    }        
}


$removed = array();

foreach($old as $v)
{
    if(!in_array($v, $new))
    {
        $removed[] = $v;
    }
}

// update them

What would be more elegant(and shorter) way to implement same thing? 有什么更优雅(更短)的方法来实现同一件事?

Use array_diff 使用array_diff

$added = array_diff($new, $old);
$removed = array_diff($old, $new);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM