2つの配列を比較して、アイテムの配列を変更、追加、削除するためのエラーのないコードを探しています。
1つの方法で3つのアレイを取得する効率的な方法はありますか?
phpまたはjavascriptの両方を使用できます
2つの配列を比較して、アイテムの配列を変更、追加、削除するためのエラーのないコードを探しています。
1つの方法で3つのアレイを取得する効率的な方法はありますか?
phpまたはjavascriptの両方を使用できます
PHPには、必要な配列機能の豊富なセットがありarray_diff
、array_intersect
$i = array("k1","k2","k3","k4","k5");
$l = array("k1","k3","k5","k6");
// Removed
$r = array_diff($i, $l);
// Unchanged
$u = array_intersect($i, $l);
// Added
$a = array_diff($l, $i);
var_dump($r, $u, $a);
出力
array (size=2)
1 => string 'k2' (length=2)
3 => string 'k4' (length=2)
array (size=3)
0 => string 'k1' (length=2)
2 => string 'k3' (length=2)
4 => string 'k5' (length=2)
array (size=1)
3 => string 'k6' (length=2)
独自の関数を作成できます
function getSet($l, $r) {
return array("diff" => array_diff($l, $r),"unchanged" => array_intersect($l, $r),"added" => array_diff($r, $l));
}
PHPを使用すると、array_diffとarray_intersectを使用できるため、定義したとおりにIとLを使用します。
$added = array_diff(L,I);
$removed = array_diff(I,L);
$unchanged = array_intersect(I,L);
必要に応じて、1つの関数にパッケージ化できます。