配列の中から条件に合うデータのを抜き出して配列を作成する方法
array_filter コールバック関数を使用して、配列の要素をフィルタリングする
##array_filter
PHP逆引きレシピよりコードを引用
function odd($value){
if(! is_int($value)){
return false;
}
return ($value % 2 == 1);
}
function even($value){
if(! is_int($value)){
return false;
}
return ($value % 2 == 0);
}
odd関数は引数の値をチェック、数値型かどうかを判別し、引数の値を2で割り、1余る値(奇数)を返します
even関数もoddと同じように処理をおこない、返り値が2で割って0になる数値
つまり偶数をかえす
//対象となる配列
$data = array('one'=>1,'two'=>2,'three'=>3,'four'=>'four');
//odd関数をarray_filterのコールバックとして使用
$odds = array_filter($data,'odd');
$evens = array_filter($data,'even');
var_dump($odds);
var_dump($evens);
結果
array(2) {
["one"]=>
int(1)
["three"]=>
int(3)
}
array(1) {
["two"]=>
int(2)
}