読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

【PHP】配列のループで$keyだけ取得したいときのループ

PHP

スポンサードリンク

とあるループ

<?php

foreach($data as $key => $value) {
    echo $value;
}

Netbeansを使っていますが、こういう時は$keyのところに黄色波線ができる。そして、「この変数は使ってないですよ。」って言われる。

黄色を残すのはよろしくないので、使わないのは削除してあげる。

<?php

foreach($data as $value) {
    echo $value;
}

ところが、$keyを使いたい場合はどうしましょう。foreach$valueの省略はできないので、さぁ困った。

そゆときはwhileでやりましょう。

<?php

while(current($data)) {
    echo key($data);
    next($data);
}

current()現在の値を取得する。key()は現在の要素番号を取得、そしてnext()はポインタを次へ進めてくれる。

こうすれば、値を省略し、必要であれば取得できるコードができる。

ちなみに、速度面はパフォーマンスは知らないのでよろしく(`・ω・)=3

2016/05/11 追記

たまたまPHPのマニュアルを見てたら

<?php
var_dump($_SERVER);
foreach ( array_keys($_SERVER) as $b ) {
    var_dump($b, filter_input(INPUT_SERVER, $b));
}
echo '<hr>';
var_dump($_ENV);
foreach ( array_keys($_ENV) as $b ) {
    var_dump($b, filter_input(INPUT_ENV, $b));
}
?>

おう、まじか。こういう書き方もできるんだね(というか少し考えてみたらそうだね...)