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
<?php
/* ----------------------------------------------------------------------------
 *    配列関連の関数:配列の要素編集:可変変数と配列要素生成の例
 *     「range,shuffle,array_rand,compact,extract」
 *  作成: 2015.08.15 yoshi of CXMedia Inc.
 * --------------------------------------------------------------------------- */
header("Content-type:text/plain; charset=UTF-8");

// array()
$aryFruits = array(
    
'cherry' => 'チェリー',
    
'melon'  => 'メロン',
    
'apple'  => 'りんご',
    
'lemon'  => 'レモン',
    
'banana' => 'バナナ',
    
'orange' => 'オレンジ'
    
);

// range(n,m)とshuffle(array)
echo '■配列生成:$aryOut=range(n,m)とshuffle(array)',"\n";
$ary range(1,10);
print_r($ary);
//生成した配列の値をシャッフル
shuffle($ary);
foreach (
$ary as $int) {
    echo 
"$int ";
}
echo 
"\n";
print_r($ary);

// array_rand(array,num)
echo '■配列キーのランダム取得:$aryOut = array_rand(array,num)',"\n";
$aryOut array_rand($aryFruits,3);
print_r($aryOut);

// compact(var_name1,array)
echo '■可変変数の配列作成:$aryOut = compact(varname1 [,varname2],array)',"\n";
$zip  "228";
$pref "神奈川県";
$city "横浜市";
$aryVars = array("pref","city");
$aryOut compact("zip","non_town",$aryVars); //'non_town'のキーがないので作成されない
print_r($aryOut);

// extract(array,flags,prefix)
/** [flags]:無効または数値キーおよび衝突に関する対処法は、flagsで定義する→デフォルト:EXTR_OVERWRITE
 * EXTR_OVERWRITE  :衝突があった場合、存在する変数が上書き
 * EXTR_SKIP       :衝突があった場合、存在する変数は上書きなし
 * EXTR_PREFIX_SAME:衝突があった場合、prefixを前につけた新しい変数になる
 * EXTR_PREFIX_ALL :全ての変数の前に prefix を付ける
 * EXTR_IF_EXISTS  :現在のシンボルテーブルに既に存在する場合にのみ上書き
 * EXTR_REFS       :変数を参照として展開
 *                 (インポート済みの変数が、arrayパラメータの値に常に参照付けられることを意味する)
 * EXTR_PREFIX_INVALID:無効または数値の変数名のみに接頭辞 prefix を付ける

 * EXTR_PREFIX_IF_EXISTS:同じ変数だが接頭辞をつけていないバージョンの変数が
 *                       現在のシンボルテーブルに存在する場合にのみ変数を生成
 */
echo '■配列から可変変数の作成:extract(array [,flags [,prefix]])',"\n";
$aryVarKey = array(
    
'color' => "レインボー",
    
'size'  => "大型",
    
'shape' => "スマート"
    
);
$size "large";
extract($aryVarKeyEXTR_PREFIX_SAME,"pre");
echo 
$color,":",$size,":",$shape,":",$pre_size,"\n";

?>