改修、それは既存のコードに機能追加や機能削除を行う、業(WAZA)の演舞。

そして、foreach と演舞っちまった(オドった)話です。

foreach の引数

foreach は( 配列 as 変数)

という使い方か

foreach (配列 as 変数 => 変数)

という使い方があって、対応するデータとしては、

foreach (配列 as 値)

foreach (配列 as キー => 値)

ということになる。

だから、

$array = array(‘banana’ => ‘ぶぁなーなぁ’,

‘apple’ => ‘あーっっぽー’,

‘orange’ => ‘みーかんぬぅ’);

という配列があった場合には、

foreach ( $array as $key ) {

print $key.”
“;

}

と書いて、いくらキーを示す変数名を付けてもムダで、

‘ぶぁなーなぁ’

‘あーっっぽー’

‘みーかんぬぅ’

値の群れが飛び出してきます。

キーが欲しい場合は、

foreach ( $array as $key => $val ) {

print $key.”;

}

とやれば、

‘banana’

‘apple’

‘orange’

というようにキーの群れが飛び出てきます。

var_dump($array);

が、

array(2) {

[0]=>

array(2) {

[“fruit”]=>

string(6) “banana”

[“vegetable”]=>

string(6) “tomato”

}

[1]=>

array(7) {

[“fruit”]=>

string(5) “mikan”

[“vegetable”]=>

string(7) “satoimo”

}

}

という配列があったとしましょう。

配列に2つの配列が入っていて、それぞれが2つの要素でなりたっています。

それぞれの配列には、フルーツとベジタブルという要素があり、文字列がぶっこまれています。

そこで、

foreach ( $array as $key => $value ) {

print $key . ‘番目の配列のベッヂは、’ . $value[‘vegetable’] . ‘だze-☆’;

}

と書くと、

$key にはぐるぐると、キーが入ってくるので、最初は、[0]、次は[1]です。

$value には、ぐるぐると、値が入ってくるので、$valueの最初は、”banana”、次が”tomato”で、

2週目の最初は、”mikan”、次が”satoimo”です。

つまり、上のループをぐるぐるすると、

0番目の配列のベッヂは、tomatoだze-☆

1番目の配列のベッヂは、satoimoだze-☆

と表示されます。

キーと値の順番を間違えると無限回廊に陥るので気を付けましょう。

foreach にだまされたわけじゃないけど、foreachのせいにした

return してたwてへぺろ