【PHP】array_map関数のように多次元配列の要素にコールバック関数を適用する方法です。
配列の要素にコールバック関数を適用したいときarray_map関数がすごく便利なのですが、array_map関数は多次元配列には対応していません。
以下の様なコードはエラーとなります。
<?php $array = ["a", ["b", "c"], "d"]; $array = array_map("strtoupper"); print_r($array);
多次元配列の要素にコールバック関数を適用したいとき、簡単に自作関数を作ることも出来ますが以下のようにfilter_var関数を使うのもおすすめです。
<?php $array = ["a", ["b", "c"], "d"]; $array = filter_var($array, FILTER_CALLBACK, ["options" => function($value){ return strtoupper($value); }]); print_r($array);
ちなみに自作関数を作った場合、以下の様なコードになると思います。
$array = ["a", ["b", "c"], "d"]; function my_strtoupper($array) { if(is_array($array)) { return array_map("my_strtoupper", $array); } return strtoupper($array); } $array = my_strtoupper($array); print_r($array);