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);
?>