PHP 配列内のデータに対して同じ処理を実行したいときに使える方法

2017.10.1

配列内のデータに対して処理を行うときに、forやforeachを使用して処理しても良いですが、array_mapを使用すれば、コードを簡潔に書くことができます。

array_mapの使用方法

array_map([関数名],[配列])

関数名は文字列で指定してください。ここに指定された関数が各配列の値に対して実行されます。

コードサンプル。

function hello($x) {
    echo $x;
}

array_map("hello", array(1, 2, 3, 4, 5));

配列内の要素すべてにhtmlspecialcharsを行いたい場合

再帰を使って多次元配列に対して処理。

function foo($data) {
    if (is_array($data)) {
        return array_map("foo", $data);
    } else {
        return htmlspecialchars($data, ENT_QUOTES);
    }
}

デコードする場合。

function foo($data) {
    if (is_array($data)) {
        return array_map("foo", $data);
    } else {
        return htmlspecialchars_decode($data, ENT_QUOTES);
    }
}