array_map

(PHP 4 >= 4.0.6)

array_map --  egy függvényt alkalmaz minden megadott tömb elemére

Leírás

array array_map ( mixed callback, array array1 [, array array2...])

Az array_map() olyan tömböt ad vissza, amelyben az array1 tömb callback nevű függvény által kiszámolt értékei vannak. A callback függvény által fogadható paraméterek száma meg kell egyezzen az array_map()-nak átadott tömbök számával.

Példa 1. array_map() példa

function kob($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("kob", $a);

Így a $b tömb értéke:
Array 
( 
  [0] => 1 
  [1] => 8 
  [2] => 27 
  [3] => 64 
  [4] => 125 
)

Példa 2. array_map() - több tömb használata

function ird_spanyolul($n, $m) {
    return "A(z) $n spanyolul: $m ";
}

function osszerendel_spanyolul($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("ird_spanyolul", $a, $b);
print_r($c);

$d = array_map("osszerendel_spanyolul", $a , $b);
print_r($d);

This results:
// $c szerkezete
Array 
( 
  [0] => A(z) 1 spanyolul: uno  
  [1] => A(z) 2 spanyolul: dos  
  [2] => A(z) 3 spanyolul: tres  
  [3] => A(z) 4 spanyolul: cuatro  
  [4] => A(z) 5 spanyolul: cinco  
) 

// $d szerkezete
Array 
( 
  [0] => Array 
      ( 
          [1] => uno 
      ) 

  [1] => Array 
      ( 
          [2] => dos 
      ) 

  [2] => Array 
      ( 
          [3] => tres 
      ) 

  [3] => Array 
      ( 
          [4] => cuatro 
      ) 

  [4] => Array 
      ( 
          [5] => cinco 
      ) 

)

Több tömb használata esetén a tömbök hosszának meg kell egyeznie, mert a meghívott callback függvény párhuzomsan halad végig rajtuk mindig a megfelelő elemeket használva fel. Ha a tömbök nem megegyező méretűek, akkor a legrövidebbek üres elemekkel lesznek feltöltve.

Ennek a függvénynek érdekes felhasználási módja, hogy tömböket tartalmazó tömböt lehet vele létrehozni, ha a callback függvényként a NULL értéket adjuk át.

Példa 3. tömböket tartalmazó tömb létrehozása

$a = array(1, 2, 3, 4, 5);
$b = array("egy", "kettő", "három", "négy", "öt");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);

A fenti program kimenete, a $d tömb szerkezete:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => egy
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => kettő
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => három
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => négy
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => öt
            [2] => cinco
        )

)

Lásd még: array_filter() és array_reduce()!