配列のkeyはint型かstring型の2種類
整数を配列のkeyに指定した場合、int型として扱われるため注意が必要です。
$array1 = [
'1983' => 'ファミコン',
'1989' => 'ゲームボーイ',
'1994' => 'プレイステーション',
];
var_dump(array_keys($array1));
// 実行結果
array(3) {
[0]=>
int(1983)
[1]=>
int(1989)
[2]=>
int(1994)
}
stringで指定していた場合でもkeyにするとint型になる
// keyをstring型で指定しておく
$key1 = (string)'1983';
$key2 = (string)'1989';
$key3 = (string)'1994';
var_dump($key1);
var_dump($key2);
var_dump($key3);
//var_dumpの結果
string(4) "1983"
string(4) "1989"
string(4) "1994"
//stringで指定した変数をkeyにして配列を作成
$array1 = [
$key1 =>'ファミコン',
$key2 => 'ゲームボーイ',
$key3 => 'プレイステーション',
];
// stringで指定していた年数がint型になっている。
var_dump(array_keys($array1));
array(3) {
[0]=>
int(1983)
[1]=>
int(1989)
[2]=>
int(1994)
}
float型、8進数の場合
$array = [
1.2 => 'foo',
2.6 => 'bar',
0332 => 'hoge',
];
var_dump($array);
// 小数点切り捨ての10進数へ変換される
array(3) {
[1]=>
string(4) "foo"
[2]=>
string(4) "bar"
[218]=>
string(4) "hoge"
}
整数にしたくない場合
-
文字列を連結しておく
例:「S_01」、「02A」など
ハッシュ化しておく