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

phpのforeachのkeyの数値っぽい文字の型

コード値をkeyに持つような連想配列で、ループでkey, valueをとって、 keyを文字列判定するような処理をしていてびっくりしたのでメモ。

<?php
$a = array(
    '01' => 'val01',
    '02' => 'val02',
    '10' => 'val10',
    '11' => 'val11'
);

$match = '10';

foreach ($a as $key => $value) {
    if ($key === $match) {
        echo 'match';
    }
}

これで、1件もマッチしないからなんでだろうーって思って型を見てみたら、 なんと、数値っぽいものはintになってしまう。。

string(2) "01"
string(2) "02"
int(10)
int(11)