🔥
php array_filter, array_values
はじめに
phpで使ったメソッドまとめていきます。
array_filter
- 配列要素をフィルタリンします。
- callback関数を呼び出して、処理を行います。
- フィルタリング後のインデックスは振り直されないです。
array_filter( 配列, callback関数) {
return 処理;
}
配列から特定のものを取り出す
お菓子という多次元配列のなかに、
配列のキーを「商品情報」と「商品価格」とした連想配列を作成してみました。
$お菓子 = [
['商品情報' => 'オレオ', '商品価格' => 100],
['商品情報' => 'じゃがりこ', '商品価格' => 200],
['商品情報' => 'ポテチ', '商品価格' => 120],
['商品情報' => 'ポッキー', '商品価格' => 180],
['商品情報' => 'ラムネ', '商品価格' => 50],
];
// 商品価格が150以下のものを購入に代入
$購入 = array_filter($お菓子, function($カゴ){
return $カゴ['商品価格'] < 150;
});
var_dump($購入);
// array(3) {
// [0]=>
// array(2) {
// ["商品情報"]=>
// string(9) "オレオ"
// ["商品価格"]=>
// int(100)
// }
// [2]=>
// array(2) {
// ["商品情報"]=>
// string(9) "ポテチ"
// ["商品価格"]=>
// int(120)
// }
// [4]=>
// array(2) {
// ["商品情報"]=>
// string(9) "ラムネ"
// ["商品価格"]=>
// int(50)
// }
// }
array_values
- 配列のindexが順番通りに並んでないのでarray_valuesを使用
- indexを順番通りにする
array_values(配列);
$購入 = array_values($購入);
var_dump($購入);
// array(3) {
// [0]=>
// array(2) {
// ["商品情報"]=>
// string(9) "オレオ"
// ["商品価格"]=>
// int(100)
// }
// [1]=>
// array(2) {
// ["商品情報"]=>
// string(9) "ポテチ"
// ["商品価格"]=>
// int(120)
// }
// [2]=>
// array(2) {
// ["商品情報"]=>
// string(9) "ラムネ"
// ["商品価格"]=>
// int(50)
// }
// }
Discussion