0

2つの配列を比較して、アイテムの配列を変更、追加、削除するためのエラーのないコードを探しています。

ここに画像の説明を入力してください

1つの方法で3つのアレイを取得する効率的な方法はありますか?

phpまたはjavascriptの両方を使用できます

4

2 に答える 2

4

PHPには、必要な配列機能の豊富なセットがありarray_diffarray_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));
}
于 2012-12-03T19:38:43.427 に答える
1

PHPを使用すると、array_diffとarray_intersectを使用できるため、定義したとおりにIとLを使用します。

$added = array_diff(L,I);
$removed = array_diff(I,L);
$unchanged = array_intersect(I,L);

必要に応じて、1つの関数にパッケージ化できます。

于 2012-12-03T19:40:35.823 に答える