2つの配列から重複を省いたり、重複を得たり

2つの配列から重複を省いたり、重複を得たり
割とよく使うのにすぐ忘れるからメモ。

ruby

RUBY_VERSION
#=> "1.9.3"

a = [1,2,3,4,5,6,7,8,9,10]
b = [1,3,5,7,9,11]

a - b
#=> [2, 4, 6, 8, 10]

a & b
#=> [1, 3, 5, 7, 9]


python

import sys
print(sys.version_info)
# (2, 6, 5, 'final', 0)

a = [1,2,3,4,5,6,7,8,9,10]
b = [1,3,5,7,9,11]

list( set(a) - set(b) )
# [8, 2, 4, 10, 6]

list( set(a) & set(b) )
# [1, 3, 9, 5, 7]


php

echo phpversion();
//=> 5.3.6

$a = array(1,2,3,4,5,6,7,8,9,10);
$b = array(1,3,5,7,9,11);

var_dump( array_diff($a, $b) );
//=>
// array(5) {
//   [1]=>
//   int(2)
//   [3]=>
//   int(4)
//   [5]=>
//   int(6)
//   [7]=>
//   int(8)
//   [9]=>
//   int(10)
// }

var_dump( array_intersect($a, $b) );
//=>
// array(5) {
//   [0]=>
//   int(1)
//   [2]=>
//   int(3)
//   [4]=>
//   int(5)
//   [6]=>
//   int(7)
//   [8]=>
//   int(9)
// }