概要
配列のキーすべて、あるいはその一部を返す
実際のコードを見て、挙動を理解しよう!
<?php
$array = array("a", 0, "0", 1, "1", true, false);
// ①第一引数のみ指定
var_dump(array_keys($array));
// ②第二引数に「1」を指定
var_dump(array_keys($array, 1));
//③第三引数に"true"を指定
var_dump(array_keys($array, "1", true));
//④第三引数に"false"を指定
var_dump(array_keys($array, "1", false));
?>
出力結果
①結果
array(7) {
[0]=> int(0), [1]=> int(1), [2]=> int(2), [3]=> int(3),
[4]=> int(4), [5]=> int(5), [6]=> int(6)
}
②結果
array(3) {
[0]=> int(3), [1]=> int(4), [2]=> int(5)
}
③結果
array(1) {
[0]=> int(4)
}
④結果
array(3) {
[0]=> int(3), [1]=> int(4), [2]=> int(5)
}
※PHP Version:8.1.9
array_keys()は、引数を指定しなければ、①のようにキーの値を取得します。
②では、第二引数に「1」という値を指定し、「1」と一致するものがあれば、キーの値を返します。
数値や文字列の”1″であっても、値を返していることが分かります。
③では型のチェックも行うことにより、数値の「1」しか返していないことが分かります。
第三引数に、trueを指定することにより、厳密な型チェックを行います。
④は、第三引数を”false”にすると、厳密な型チェックをしないので、②と同じ結果が得られます。
第三引数を”true”にすることのメリット
比較したい値の型と別の型が入ってくることがななくなります。
それによって、開発やphpのバージョンアップを行う際に、予期せぬエラーを防ぐことができます。
参考記事
PHP: array_keys - Manual
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
ビルトイン関数は、公式を見た方が正確。
※ビルトイン関数…組み込み関数のこと(簡単に言うと、既にphp側で用意されている関数)
コメント