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
<?php
/* ----------------------------------------------------------------------------
* 配列関連の関数:配列ループ制御の例
* 「each,key,reset,current,pos,next,end,prev」
* 作成: 2015.08.15 yoshi of CXMedia Inc.
* --------------------------------------------------------------------------- */
header("Content-type:text/plain; charset=UTF-8");
// array()
$aryFruits = array(
'cherry' => 'チェリー',
'melon' => 'メロン',
'apple' => 'りんご',
'lemon' => 'レモン',
'banana' => 'バナナ',
'orange' => 'オレンジ'
);
// each(array)
echo '■配列:each(array)',"\n";
while (list($key, $value) = each($aryFruits)) {
echo "キーは「{$key}」で、値は「{$value}」です。\n";
}
// current(array)とreset(array)、pos(array):currentのエイリアス
echo '■配列:current(array)とreset(array)、pos(array):currentのエイリアス',"\n";
// 内部ポインタがEOFの状態
$str = current($aryFruits)? current($aryFruits) : 'NULL';
echo "現在の要素(EOF)は、{$str}です。\n";
// 内部ポインタの初期化
reset($aryFruits);
echo "reset後の先頭の要素は、",pos($aryFruits),"です。\n";
// whileで配列全部を対象にするには、内部ポインタのresetで初期化が必要
// key(array)とcurrent(array)とnext(array)関連
echo '■配列:key(array)、current(array)とnext(array)関連',"\n";
while ($ary = current($aryFruits)) {
// 現在のポインタのキーを取得
$idx = key($aryFruits);
echo "キーは「{$idx}」で、値は「{$aryFruits[$idx]}」です。\n";
// ポインタを次に進める
next($aryFruits);
}
// end(array)とprev(array)
echo '■配列:end(array)とprev(array)',"\n";
echo '最終要素の値は',end($aryFruits),"\n";
echo '最終要素の前の値は',prev($aryFruits),"\n";
?>