1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/* ------------------------------------------------------------------------------------------------
 *    配列関連の関数:配列の比較計算01の例
 *   「array_diff,array_diff_assoc,array_diff_key,array_diff_uassoc,array_diff_ukey,array_intersect,
 *     array_intersect_assoc,array_intersect_key,array_intersect_uassoc,array_intersect_ukey」
 *  作成: 2015.08.18 yoshi of CXMedia Inc.
 * ------------------------------------------------------------------------------------------------ */
header("Content-type:text/plain; charset=UTF-8");

// array()
$ary1 = array('a'=>'start','fruit'=> 'apple','vegita'=>'tomato','b'=>'lemon','a');
$ary2 = array('a'=>'end',  'fruit'=> 'apple','lemon','b','a');

$aryk1 = array('red'  => '赤''blue' => '青''green'  => '緑');
$aryk2 = array('green'=> '緑''blue' => '青''yellow' => '黄');

echo 
'■■配列の比較計算01の例■■',"\n";
// array_diff(array1,array2, ...);
echo '■配列の差:$aryOut=array_diff(array1,array2 [,array3 ...])',"\n";
$aryOut array_diff($ary1$ary2);
print_r($aryOut);

// array_diff_assoc(array1,array2, ...);
echo '■配列の差(添字含む):$aryOut=array_diff_assoc(array1,array2 [,array3 ...])',"\n";
$aryOut array_diff_assoc($ary1$ary2);
print_r($aryOut);

// array_diff_key(array1,array2, ...);
echo '■配列キーの差:$aryOut=array_diff_key(array1,array2 [,array3 ...])',"\n";
$aryOut array_diff_key($ary1$ary2);
print_r($aryOut);

// array_diff_uassoc(array1,array2,user_func);
echo '■配列添字比較の差:ユーザー関数:',
     
"\n",'$aryOut=array_diff_uassoc(array1,array2 [,array3 ...],user_func)',"\n";
$aryOut array_diff_uassoc($ary1$ary2'diff_cmp');
print_r($aryOut);

//配列の比較:ユーザ関数
function diff_cmp($a$b){
    return (
$a == $b)? '0' : (($a $b)? '1' '-1');
}

// array_diff_ukey(array1,array2,user_func);
// (注)連想配列のみのキー比較でないと正しい比較ができない
echo '■配列キーの差:ユーザー関数:',
     
"\n",'$aryOut=array_diff_ukey(array1,array2 [,array3 ...],user_func)',"\n";
$aryOut array_diff_ukey($aryk1$aryk2'diff_cmp');
print_r($aryOut);

// array_intersect(array1,array2, ...);
echo '■配列の共通項:',
     
"\n",'$aryOut=array_intersect(array1,array2 [,array3 ...])',"\n";
$aryOut array_intersect($ary1$ary2);
print_r($aryOut);

// array_intersect_assoc(array1,array2, ...);
echo '■配列キー比較の共通項:',
     
"\n",'$aryOut=array_intersect_assoc(array1,array2 [,array3 ...])',"\n";
$aryOut array_intersect_assoc($ary1$ary2);
print_r($aryOut);

// array_intersect_key(array1,array2, ...);
echo '■配列キー比較の共通項計算:',
     
"\n",'$aryOut=array_intersect_key(array1,array2 [,array3 ...])',"\n";
$aryOut array_intersect_key($ary1$ary2);
print_r($aryOut);

// array_intersect_uassoc(array1,array2,user_func);
echo '■配列比較の共通項:ユーザー関数:',
     
"\n",'$aryOut=array_intersect_uassoc(array1,array2 [,array3 ...],user_func)',"\n";
$aryOut array_intersect_uassoc($ary1$ary2'diff_cmp');
print_r($aryOut);

// array_intersect_ukey(array1,array2,user_func);
echo '■配列キー比較の共通項:ユーザー関数:',
     
"\n",'$aryOut=array_intersect_ukey(array1,array2 [,array3 ...],user_func)',"\n";
$aryOut array_intersect_ukey($ary1$ary2'diff_cmp');
print_r($aryOut);

?>