[PHP]連想配列のキーを検索し取得するには?

PHP

どうも、ちょげ(@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
)

コメント

タイトルとURLをコピーしました