はじめに
配列の要素にstringが含まれていて、困るシーンがあったので、配列の要素をintにキャストする関数を考えました。
コード
$arr = ['1', '2', '3'];
$res = array_map('intval', $arr)
/*
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
*/
array_mapにコールバックintval()
を渡すことで、全要素にintval()
が行われてキャストされるという仕組みです。
おまけ
Utilsに自分で追記してもいいのかなと思ってます☺
/**
* 配列の要素を指定に型にキャストする
*
* @param array $arr キャストしたい配列
* @param string $cast_type 【int, str, float, bool】を指定することが可能
* @return array キャストした配列を返却
*/
function array_cast(array $arr, string $cast_type): array {
return array_map($cast_type.'val', $arr);
}