現在リニューアル中 → 旧サイトはこちら

array_map

総額の計算・整形

単価と個数から総額を計算し整形して返す。

//単価と個数を配列で受け取り、総額を計算する。 //単価、個数、総額の数値は整形して返す。 function map($x, $y){ return array(number_format($x), number_format($y), number_format($x * $y)); } $a = array(980, 1980, 480); // 単価 $b = array(90, 70, 1200); // 個数 $c = array_map("map", $a, $b); foreach ($c as $value) { printf("%5s円 x %5s個 = %7s円\n", $value[0], $value[1], $value[2]); }

配列値の調整

点数の最高点を100点に調整して、名前と点数の配列にする。

$array1 = array("田中", "鈴木", "斉藤"); $array2 = array(70, 60, 200); $aray_result = array_map("adjust", $array1, $array2); function adjust($name, $num) { return array($name, min(100, $num)); }

入力データの一括処理

array_result = array_map("conv", $_POST; function conv($item) { (配列値の加工処理:タグの削除、エスケープの解除など) return $item; }

次元配列

関数名にNULLを指定すると複数の配列を一つの多次元配列として返す。

$a = array(1, 2, 3); $b = array("a", "b", "c"); $c = array_map(NULL, $a, $b); // $c[0][0] = 1 // $c[0][1] = "a" // $c[1][0] = 2 // $c[1][1] = "b" // $c[2][0] = 3 // $c[2][1] = "c"

array_filter

123」で始まる番号を抽出する。

function filter($x) { return preg_match("/^123\-/", $x); } $a = array("123-4567", "111-2222", "321-9999", "123-5555", "123-9876"); $b = array_filter($a, "filter"); foreach ($b as $value) { echo $value . "<br>"; }

array_reduce

各要素の値を千倍して集計

function reduce($x, $y) { $x += ($y * 1000); return $x; } $a = array(9.5, 7.2, 3.7, 6.8, 5.4); $b = array_reduce($a, "reduce", 0); echo $b;

array_walk

百分率で表示。

function walk($x, $y, $z) { printf("%d : %2d%%\n", $y, round($x / $z * 100)); } function 関数名(引数1, 引数2) { //二つの引数の値を比較するコード return 0 または 1 または -1 }