for文不要。コールバック関数を用いて簡単に配列操作ができる関数を3つ紹介します。
array_filter
配列から特定の条件にマッチする要素を抽出し、新たな配列を作る
$arr1 = [1,2,3,4,5];
$arr2 = array_filter($arr1,function($elem){
return $elem > 3;
});
print_r($arr2);
//Array([3] => 4 [4] => 5)
array_map
全ての配列要素に同じ処理を一括で適用し、新たな配列を作る
$arr1 = [1,2,3,4,5];
$arr2 = array_map(function($elem){
return $elem * 2;
},$arr1);
print_r($arr2);
//Array([0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10)
array_reduce
全ての配列要素に同じ処理を適用し、配列を一つにまとめる
$arr = [1,2,3,4,5];
//$ret:前回の反復処理の結果を保持。最初の反復ではnull
//$elem:配列の値を保持。
$val = array_reduce($arr,function($ret, $elem){
$ret += $elem;
return $ret;
});
echo $val; //15