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
<?php
/* ----------------------------------------------------------------------------
 *    配列関連の関数:配列要素のソート2の例
 *     配列の要素のソート:数値、ファイル名に対する配列例
 *  作成: 2015.08.13 yoshi of CXMedia Inc.
 * --------------------------------------------------------------------------- */
header("Content-type:text/plain; charset=UTF-8");

/** [sort_order] :ソート順
 *  SORT_ASC  : アイテムを昇順にソート
 *  SORT_DESC : アイテムを降順にソート
 *
 *  [sort_flags] :ソート型のフラグ
 *  SORT_REGULAR : 通常通りに項目を比較 (型は変更なし)
 *  SORT_NUMERIC : 数値的に項目を比較
 *  SORT_STRING  : 文字列として項目を比較
 *  SORT_LOCALE_STRING : 現在のロケールに基づいて比較(比較に使うロケールは、setlocale() で変更)
 *  SORT_NATURAL :要素の比較を文字列の「自然順」で比較、natsort() と同様(PHP5.4以降)
 *  SORT_FLAG_CASE :文字列の大小文字を区別しない比較、
 *                  SORT_STRING、SORT_NATURALと組み合せ利用 (ビットORで)(PHP5.4以降)
 */

// array()
$aryFiles = array('file1,txt','file10,txt','file2,txt','FILE21,txt','file13,txt','FILE3,txt','file25,txt');
$ary1     = array('cherry','melon','apple','lemon','banana','orange');
$ary2     = array('チェリー''メロン','りんご','レモン','バナナ','オレンジ');
$ary3     = array('10','1','100','15','0','10');
$ary4     = array(
    
'a' => '10',
    
'b' => '1',
    
'c' => '100',
    
'd' => '15',
    
'e' => '0',
    
'f' => '10'
    
);

// sort()とnatsort(array)の違い
echo '■配列:通常sort(array)',"\n";
sort($aryFiles);
print_r($aryFiles);
echo 
'■配列:自然順natsort(array)',"\n";
natsort($aryFiles);
print_r($aryFiles);

// natsort(array)とnatsort(array)の違い
echo '■配列:自然順natcasesort(array)',"\n";
natcasesort($aryFiles);
print_r($aryFiles);

// array_multisort(array1 [,sort_order [,sort_flag [,array2 ... ]]])
echo '■多次元配列:array_multisort(array1 [,sort_order [,sort_flag [,array2 ... ]]])',"\n";
array_multisort($ary1SORT_DESC$ary2);
print_r($ary1);
print_r($ary2);

// usort(array,"user_function")
echo '■配列の値:ユーザ関数 usort(array,"user_function")',"\n";
usort($ary3"cmp");
print_r($ary3);
// 最初の引数が二番目の引数より大きい場合は正の数を、等しい場合はゼロを、小さい場合は負の数を返す必要あり
function cmp($a,$b) { return ($a == $b)?  : (($a $b)? -1); }

// uasort(array,"user_function")
echo '■連想配列の値:ユーザ関数 uasort(array,"user_function")',"\n";
uasort($ary4"cmp");
print_r($ary4);

// uksort(array,"user_function")
echo '■配列キー:ユーザ関数 uksort(array,"user_function")',"\n";
uksort($ary4"cmp");
print_r($ary4);の値
?>