Forum und email

array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map — Egy függvényt alkalmaz minden megadott tömb elemére

Leírás

array array_map ( callback $callback , array $array1 [, array $... ] )

Az array_map() olyan tömböt ad vissza, amelyben az arr1 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.

Example#1 array_map() példa

<?php
function kob($n)
{
    return(
$n $n $n);
}

$a = array(12345);
$b array_map("kob"$a);
print_r($b);
?>

A fenti példa a következő kimenetet adja:

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

Example#2 array_map() - több tömb használata

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

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

$a = array(12345);
$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);
?>

A fenti példa a következő kimenetet adja:

 
 
// $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.

Example#3 tömböket tartalmazó tömb létrehozása

<?php
$a 
= array(12345);
$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 példa a következő kimenetet adja:

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(), array_reduce(), array_walk() create_function() és a visszahívható (callback) típusról szóló bejegyzést.