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($aryVarKey, EXTR_PREFIX_SAME,"pre");
echo $color,":",$size,":",$shape,":",$pre_size,"\n";
?>