No.370
【PHP】配列の整理に便利な関数
配列のデータ整形によく使うコマンド
PHPでは配列の値をソートしたり、空データを弾きたいときに関数ひとつで行うことができる。
結構レビューで指摘することが多いので、説明用にメモ。
array_map()
:配列の要素をメソッドで処理する
https://www.php.net/manual/ja/function.array-map.php
'trim()'するなどの場合に便利。
$fuga = [
0 => "1",
1 => " 2 ",
2 => "0",
3 => "",
4 => " "
];
$hoge = array_map('trim', $fuga);
var_export($hoge);
↓
[
0 => "1",
1 => "2",
2 => "0",
3 => "",
4 => ""
]
もちろんコールバック関数には無名関数も使える。
array_filter()
:配列の要素をフィルタリングする
https://www.php.net/manual/ja/function.array-filter.php
コールバック関数を記載しないと配列の値でフィルタリングされる。
(bool)値
なので、0
もしくは空
null
はfalse
になる`。よくトラブルの元になるので注意。
$fuga = [
0 => "1",
1 => " 2 ",
2 => "0",
3 => "",
4 => " "
];
$hoge = array_filter($fuga);
var_export($hoge);
↓
[
0 => "1",
1 => "2",
4 => " "
]
空だけど意味ある値を除外したい場合はコールバック関数を定義してあげればよい。
例えば0
を除外する場合はstrlen()
を使ってやる。
$fuga = [
0 => "1",
1 => " 2 ",
2 => "0",
3 => "",
4 => " "
];
$hoge = array_filter($fuga, 'strlen');
var_export($hoge);
↓
[
0 => "1",
1 => " 2 ",
2 => "0"
4 => " "
]
もちろんコールバック関数には無名関数も使える。
array_values()
:配列のキーを振り直す
https://www.php.net/manual/ja/function.array-values.php
asort()
などでソートした後にキーを振り直すためによく使う。
$fuga = [
1 => "a",
3 => "b",
4 => "c"
];
$hoge = array_values($fuga);
var_export($hoge);
↓
[
0 => "a",
1 => "b",
2 => "c"
]