PHP-指定された配列の各要素にコールバック関数を適用します.


PHP関数


array_map

サマリ


指定した配列の各要素にコールバック関数を適用します.

関数プロトタイプ

  array_map ( callable|null $callback , array $array , array ...$arrays ) : array

パラメータ

  • $callback各配列の各要素に対して実行される関数(匿名関数を含む)、またはメソッド.nullは、値としてコールバックに渡され、複数の配列でマージ操作を実行することができる.$callbackパラメータのみが提供される場合、array_map()は入力配列$arrayに戻る.
  • $arrayコールバック関数$callbackの配列が適用される.
  • $arraysコールバック関数で実行する配列引数の追加変数のリスト.
  • 説明:


    PHP 4.0.6から提供されます.$callback関数を配列内でループし、結果を新しい配列に戻します.array_map()は、コールバックパラメータとしての配列の対応するインデックス(より多くの配列が提供される場合、配列)にコールバックが適用された結果を含む配列を返します.
    コールバック関数によって許可されるパラメータは、array_map()に送信される配列の数と一致しなければならない.
    コールバックパラメータとして使用される配列にコールバック関数を適用した対応するインデックス(他の配列が指定されている場合は配列)の結果を含む配列を返します.
    返される配列は、配列が正しく渡された場合にのみ、配列引数のキーを保持します.
    複数の配列が渡された場合、返される配列には順序整数キーがあります.

    例1

    function cube($n)
    {
        return ($n * $n * $n);
    }
    
    $a = [1, 2, 3, 4, 5];
    $b = array_map('cube', $a);
    print_r($b);

    結果。

    Array
    (
        [0] => 1
        [1] => 8
        [2] => 27
        [3] => 64
        [4] => 125
    )

    例2

    $func = function($value) {
        return $value * 2;
    };
    
    print_r(array_map($func, range(1, 5)));

    結果。

    Array
    (
        [0] => 2
        [1] => 4
        [2] => 6
        [3] => 8
        [4] => 10
    )

    例3

    function show_Spanish($n, $m)
    {
        return "The number {$n} is called {$m} in Spanish";
    }
    
    function map_Spanish($n, $m)
    {
        return [$n => $m];
    }
    
    $a = [1, 2, 3, 4, 5];
    $b = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];
    
    $c = array_map('show_Spanish', $a, $b);
    print_r($c);
    
    $d = array_map('map_Spanish', $a , $b);
    print_r($d);

    結果。

    // printout of $c
    Array
    (
        [0] => The number 1 is called uno in Spanish
        [1] => The number 2 is called dos in Spanish
        [2] => The number 3 is called tres in Spanish
        [3] => The number 4 is called cuatro in Spanish
        [4] => The number 5 is called cinco in Spanish
    )
    
    // printout of $d
    Array
    (
        [0] => Array
            (
                [1] => uno
            )
    
        [1] => Array
            (
                [2] => dos
            )
    
        [2] => Array
            (
                [3] => tres
            )
    
        [3] => Array
            (
                [4] => cuatro
            )
    
        [4] => Array
            (
                [5] => cinco
            )
    
    )

    例4

    $a = [1, 2, 3, 4, 5];
    $b = ['one', 'two', 'three', 'four', 'five'];
    $c = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];
    
    $d = array_map(null, $a, $b, $c);
    print_r($d);

    結果。

    Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => one
                [2] => uno
            )
    
        [1] => Array
            (
                [0] => 2
                [1] => two
                [2] => dos
            )
    
        [2] => Array
            (
                [0] => 3
                [1] => three
                [2] => tres
            )
    
        [3] => Array
            (
                [0] => 4
                [1] => four
                [2] => cuatro
            )
    
        [4] => Array
            (
                [0] => 5
                [1] => five
                [2] => cinco
            )
    
    )

    例5

    $array = [1, 2, 3];
    var_dump(array_map(null, $array));

    結果。

    array(3) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [2]=>
      int(3)
    }

    例6

    $arr = ['stringkey' => 'value'];
    function cb1($a) {
        return [$a];
    }
    function cb2($a, $b) {
        return [$a, $b];
    }
    var_dump(array_map('cb1', $arr));
    var_dump(array_map('cb2', $arr, $arr));
    var_dump(array_map(null,  $arr));
    var_dump(array_map(null, $arr, $arr));
    

    結果。

    array(1) {
      ["stringkey"]=>
      array(1) {
        [0]=>
        string(5) "value"
      }
    }
    array(1) {
      [0]=>
      array(2) {
        [0]=>
        string(5) "value"
        [1]=>
        string(5) "value"
      }
    }
    array(1) {
      ["stringkey"]=>
      string(5) "value"
    }
    array(1) {
      [0]=>
      array(2) {
        [0]=>
        string(5) "value"
        [1]=>
        string(5) "value"
      }
    }

    リファレンス


    https://phpman.ml/array_map
    https://www.php.net/manual/en/function.array-map.php

    Pythonコード

    def array_map(callback, array):
        return map(callback, array)

    そうかんかんすう


    array_filter
    array_reduce
    array_walk
    copyright phpman all right reserved.
    インスタントレコーダ uses phpman 's content under contract.
    インスタントレコーダで開発依頼を要求する場合は、FAQを参照してください.適切であれば、[email protected]に連絡してください.