どうも、ちょげ(@chogetarou)です。
連想配列のキーを条件で検索し取得する方法を紹介します。
方法

連想配列のキー(key)を条件で検索し取得するには、array_filter()を使います。
まず、array_filter()を呼び出します。
array_filter()の第1引数に、対象の連想配列を引数に指定したarray_keys()を指定します。
array_filter()の第2引数に、1つの引数を持つ関数を指定します。
関数で、取得するキーの条件式を返します。
(キーは関数の引数で取得。値はキーから取得。)
//$arr=対象の連想配列, condition=条件式
$result = array_filter(array_keys($arr), function ($key) {
//変数「$key」でキーを取得
return condition;
});
上記のarray_filter()は、条件式で「true」を返した連想配列のキー(key)を検索し、配列として取得します。
使用例
<?php
$numbers = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4, 'five' => 5];
$result = array_filter(array_keys($numbers), function ($key) {
//文字数が4のキーを取得
return strlen($key) === 4;
});
print_r($result);
?>
出力:
Array
(
[0] => four
[1] => five
)
コメント