20

私はphpに次の配列を持っています:

$a = $array(0, 4, 5, 7);

ループを書かずにすべての値をインクリメントしたい (for, foreach...)

// increment all values
// $a is now array(1, 5, 6, 8)

それはphpで可能ですか?

さらに、各要素で関数を呼び出し、その要素を関数の戻り値で置き換えることは可能ですか?

例えば:

$a = doubleValues($a); // array(0, 8, 10, 14)
4

3 に答える 3

53

これは次のジョブですarray_map()(内部でループします):

$a = array(0, 4, 5, 7);
// PHP 5.3+ anonmymous function.
$output = array_map(function($val) { return $val+1; }, $a);

print_r($output);
Array
(
    [0] => 1
    [1] => 5
    [2] => 6
    [3] => 8
)

OPによる編集:

function doubleValues($a) {
  return array_map(function($val) { return $val * 2; }, $a);
}
于 2012-10-02T13:29:14.233 に答える
0
$arr = array(0, 4, 5, 7);
function val($val) { return $val+1; }
$arr = array_map( 'val' , $arr );
print_r( $arr );

ここで見る

于 2012-10-02T13:32:42.597 に答える