【PHP】array_mapで配列の要素全てを一括でstringからintにキャストする

stringの詰まった配列の中身を全てintに変換したいとき、今まではforeachで中身を1つずつ取り出して処理していた。

配列の要素をキャスト(string → int)


$strings = array('1', '2', '3');

// foreachで1つずつ処理
$integers = array();
foreach($strings as $string) {
    $integers[] = intval($string);
}

が、array_map()を使えば1行で配列の中身全てを処理できることを初めて知った。

array_map()の使い型


// stringの配列
$strings = array('1', '2', '3');

// 配列の全ての要素にintval()を適用
$integers = array_map(intval, $strings); // array(1, 2, 3)になる

PHP: array_map – Manual

https://www.php.net/manual/ja/function.array-map.php

※使い方の例に、intval()を一括で適用するパターンが掲載されていす。

1つ目の引数(コールバック関数)を変えれば配列の全ての要素に対して同じ関数を適用できるので便利。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です