foreach`のインデックスを見つけることはできますか?
を以下のようなfor
ループで作成しました。
for ($i = 0; $i < 10; ++$i) {
echo $i . ' ';
}
i」はインデックスを表しています。
forループを使わなければならないのか、それとも
foreach`ループでインデックスを取得する方法があるのか?
例えば、実行するたびにインクリメントされるフィールドなど、数値インデックス付きの配列であれば、for
ループで得られるものと全く同じものを、for
にハックすることができます。このようなフィールドは、手動での管理(インクリメントなど)が必要な擬似的なインデックスとなります。
foreachであれば、$key
の値の形でインデックスが得られるので、そのようなハックは必要ないはずです。
例えば、foreach
の場合。
$index = 0;
foreach($data as $key=>$val) {
// Use $key as an index, or...
// ... manage the index this way..
echo "Index is $index\n";
$index++;
}
ループの外で$i
を作り、ループの下で$i++
を行うことができます。