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