Php array map lambda

array_map

Функция array_map() возвращает массив ( array ), содержащий результаты применения callback -функции к соответствующему индексу array (и arrays , если указано больше массивов), используемого в качестве аргумента callback-функции. Количество параметров, передаваемых callback -функции, должно совпадать с количеством массивов, переданным функции array_map() .

Список параметров

callable , применяемая к каждому элементу в каждом массиве.

null может быть передан в качестве значения callback для выполнения zip операции с несколькими массивами. Если указан только array , array_map() вернет входной массив.

Массив, к которому применяется callback -функция.

Дополнительные массивы для обработки callback -функцией.

Возвращаемые значения

Возвращает массив, содержащий результаты применения callback -функции к соответствующему индексу array (и arrays , если указано больше массивов), используемого в качестве аргумента для callback-функции.

Возвращенный массив сохранит ключи аргумента массива тогда и только тогда, когда будет передан ровно один массив. Если передано более одного массива, возвращенный массив будет иметь последовательные целочисленные ключи.

Примеры

Пример #1 Пример использования array_map()

$a = [ 1 , 2 , 3 , 4 , 5 ];
$b = array_map ( ‘cube’ , $a );
print_r ( $b );
?>

В результате переменная $b будет содержать:

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

Пример #2 Использование array_map() вместе с лямбда-функцией (начиная с PHP 5.3.0)

print_r ( array_map ( $func , range ( 1 , 5 )));
?>

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

Пример #3 Пример использования array_map() : обработка нескольких массивов

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 );
?>

Результат выполнения данного примера:

// вывод $c Array ( [0] => Число 1 по-испански - uno [1] => Число 2 по-испански - dos [2] => Число 3 по-испански - tres [3] => Число 4 по-испански - cuatro [4] => Число 5 по-испански - cinco ) // вывод $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) )

Обычно при обработке двух или более массивов, они имеют одинаковую длину, так как callback-функция применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, более короткие из них дополняется элементами с пустыми значениями до длины самого длинного массива.

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения null в качестве имени callback-функции.

Пример #4 Выполнение zip операции с массивами

$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 );
?>

Читайте также:  Фиксированные двоичные файлы python

Результат выполнения данного примера:

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 null callback только с array

Результат выполнения данного примера:

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

Пример #6 Использование array_map() со строковыми ключами

$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" > >

Смотрите также

  • array_filter() — Фильтрует элементы массива с помощью callback-функции
  • array_reduce() — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() — Применяет заданную пользователем функцию к каждому элементу массива

Источник

array_map

Функция array_map() возвращает массив, содержащий элементы array1 после их обработки callback -функцией. Количество параметров, передаваемых callback -функции, должно совпадать с количеством массивов, переданным функции array_map() .

Список параметров

Callback-функция, применяемая к каждому элементу в каждом массиве.

Массив, к которому применяется callback -функция.

Дополнительные массивы для обработки callback -функцией.

Возвращаемые значения

Возвращает массив, содержащий все элементы array1 после применения callback -функции к каждому из них.

Примеры

Пример #1 Пример использования array_map()

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array_map ( «cube» , $a );
print_r ( $b );
?>

В результате переменная $b будет содержать:

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

Пример #2 Использование array_map() вместе с lambda-функцией (начиная с версии PHP 5.3.0)

print_r ( array_map ( $func , range ( 1 , 5 )));
?>

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

Пример #3 Пример использования array_map() : обработка нескольких массивов

function show_Spanish ( $n , $m )
return( «Число $n по-испански — $m » );
>

function map_Spanish ( $n , $m )
return(array( $n => $m ));
>

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array( «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 );
?>

Результат выполнения данного примера:

// вывод $c Array ( [0] => Число 1 по-испански - uno [1] => Число 2 по-испански - dos [2] => Число 3 по-испански - tres [3] => Число 4 по-испански - cuatro [4] => Число 5 по-испански - cinco ) // вывод $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) )

Обычно при обработке двух или более массивов, они имеют одинаковую длину, так как callback-функция применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, более короткие из них дополняется элементами с пустыми значениями до длины самого длинного массива.

Читайте также:  Splitting long lines in python

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения NULL в качестве имени callback-функции.

Пример #4 Создание массива массивов

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array( «one» , «two» , «three» , «four» , «five» );
$c = array( «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_map() со строковыми ключами

$arr = array( «stringkey» => «value» );
function cb1 ( $a ) return array ( $a );
>
function cb2 ( $a , $b ) return array ( $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" > >

Смотрите также

  • array_filter() — Фильтрует элементы массива с помощью callback-функции
  • array_reduce() — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() — Применяет заданную пользователем функцию к каждому элементу массива
  • информация о типе callback

Источник

array_map

Функция array_map() возвращает массив, содержащий элементы arr1 после их обработки callback-функцией. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции array_map() .

Список параметров

Callback-функция, применяемая к каждому элементу в каждом массиве.

Массив, к которому применяется callback-функция.

Дополнительные массивы для обработки callback-функцией.

Возвращаемые значения

Возвращает массив, содержащий все элементы arr1 после применения callback-функции к каждому из них.

Примеры

Пример #1 Пример использования array_map()

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array_map ( «cube» , $a );
print_r ( $b );
?>

В результате переменная $b будет содержать:

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

Пример #2 Использование array_map() вместе с lambda-функцией (начиная с версии PHP 5.3.0)

print_r ( array_map ( $func , range ( 1 , 5 )));
?>

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

Пример #3 Пример использования array_map() : обработка нескольких массивов

Читайте также:  Java hashmap return all values

function show_Spanish ( $n , $m )
return( «Число $n по-испански — $m » );
>

function map_Spanish ( $n , $m )
return(array( $n => $m ));
>

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array( «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 );
?>

Результат выполнения данного примера:

// вывод $c Array ( [0] => Число 1 по-испански - uno [1] => Число 2 по-испански - dos [2] => Число 3 по-испански - tres [3] => Число 4 по-испански - cuatro [4] => Число 5 по-испански - cinco ) // вывод $d Array ( [0] => Array ( [1] => uno ) [1] => Array ( [2] => dos ) [2] => Array ( [3] => tres ) [3] => Array ( [4] => cuatro ) [4] => Array ( [5] => cinco ) )

Обычно при обработке двух или более массивов, они имеют одинаковую длину, так как функция обратного вызова применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, самый маленький из них дополняется элементами с пустыми значениями.

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения NULL в качестве имени callback-функции.

Пример #4 Создание массива массивов

$a = array( 1 , 2 , 3 , 4 , 5 );
$b = array( «one» , «two» , «three» , «four» , «five» );
$c = array( «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_map() со строковыми ключами

$arr = array( «stringkey» => «value» );
function cb1 ( $a ) return array ( $a );
>
function cb2 ( $a , $b ) return array ( $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" > >

Смотрите также

  • array_filter() — Фильтрует элементы массива с помощью callback-функции
  • array_reduce() — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() — Применяет пользовательскую функцию к каждому элементу массива
  • create_function() — Создаёт анонимную (lambda-style) функцию

Источник

Оцените статью