Произведение всех элементов массива php

Функции для работы со массивами в PHP

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

Функция Описание
array() Создает массив
array_change_key_case() Изменяет регистр всех ключей в массиве (нижний или верхний регистр)
array_chunk() Разбивает массив на части массивов
array_column() Возвращает значения из одного столбца во входном массиве
array_combine() Создает массив, используя один массив для ключей и другой для его значений
array_count_values() Подсчитывает все значения массива
array_diff() Сравнивает значения массивов, и возвращает различия
array_diff_assoc() Сравнивает массивы ключей и значений, и возвращает различия
array_diff_key() Сравнивает ключи массивов, и возвращает различия
array_diff_uassoc() Сравнивает массивы ключей и значений, используя определяемую пользователем функцию сравнения ключей, и возвращает различия
array_diff_ukey() Сравнивает ключи массива, используя определяемую пользователем функцию сравнения ключей, и возвращает различия
array_fill() Заполняет массив значениями
array_fill_keys() Заполняет массив значениями, указав ключи
array_filter() Фильтрует элементы массива с помощью пользовательской функции
array_flip() Переворачивает или меняет все ключи на связанные с ними значения в массиве
array_intersect() Сравнивает значения массивов, и возвращает совпадения
array_intersect_assoc() Сравнивает массивы ключей и значений, и возвращает совпадения
array_intersect_key() Сравнивает ключи массивов, и возвращает совпадения
array_intersect_uassoc() Сравнивает массивы ключей и значений, используя определяемую пользователем функцию сравнения ключей, и возвращает совпадения
array_intersect_ukey() Сравнивает ключи массивов, используя определенную пользователем функцию сравнения ключей, и возвращает совпадения
array_keys() Возвращает все ключи или подмножество ключей массива
array_key_exists() Проверяет, существует ли указанный ключ в массиве
array_map() Отправляет элементы данных массивов пользовательской функции, которая может использовать их для возврата новых значений
array_merge() Объединяет один или несколько массивов в один массив
array_merge_recursive() Рекурсивно объединяет один или несколько массивов в один
array_multisort() Сортирует множественные или многомерные массивы
array_pad() Вставляет указанное количество элементов с указанным значением в массив
array_pop() Удаляет последний элемент массива, и возвращает значение удаленного элемента
array_product() Вычисляет произведение значений в массиве
array_push() Вставляет один или несколько элементов в конец массива
array_rand() Возвращает один или несколько случайных ключей из массива
array_reduce() Уменьшает массив до одного значения с помощью определяемой пользователем функции обратного вызова
array_replace() Заменяет значения первого массива значениями из следующих массивов
array_replace_recursive() Рекурсивно заменяет значения первого массива значениями из следующих массивов
array_reverse() Возвращает массив с элементами в обратном порядке
array_search() Ищет в массиве заданное значение и возвращает соответствующий ключ в случае успеха
array_shift() Удаляет первый элемент из массива, и возвращает значение удаленного элемента
array_slice() Извлекает фрагмент из массива
array_splice() Удаляет часть массива и заменяет на что-нибудь другое
array_sum() Вычисляет сумму значений в массиве
array_udiff() Сравнивает только значения массивов, используя определенную пользователем функцию обратного вызова сравнения, и возвращает различия
array_udiff_assoc() Сравнивает значения массивов с помощью определяемой пользователем функции обратного вызова сравнения, с дополнительным сравнением ключей с использованием внутренней (или встроенной) функции, и возвращает различия
array_udiff_uassoc() Сравнивает ключи и значения массивов, используя две отдельные пользовательские функции обратного вызова сравнения, и возвращает различия
array_uintersect() Сравнивает только значения массивов, используя определенную пользователем функцию обратного вызова сравнения, и возвращает совпадения
array_uintersect_assoc() Сравнивает значения массивов с помощью определяемой пользователем функции обратного вызова сравнения, в то время как использует внутреннюю (или встроенную) функцию для сравнения ключа, и возвращает совпадения
array_uintersect_uassoc() Сравнивает ключи и значения массивов, используя две отдельные пользовательские функции обратного вызова сравнения, и возвращает совпадения
array_unique() Удаляет повторяющиеся значения из массива
array_unshift() Добавляет один или несколько элементов в начало массива
array_values() Возвращает все значения массива
array_walk() Применяет пользовательскую функцию к каждому элементу массива
array_walk_recursive() Рекурсивно применяет пользовательскую функцию к каждому элементу массива
asort() Сортирует ассоциативный массив по значению в возрастающем порядке
arsort() Сортирует ассоциативный массив по значению в обратном или убывающем порядке
compact() Создает массив, содержащий переменные и их значения
count() Подсчитывает все элементы в массиве
current() Возвращает текущий элемент в массив
each() Возвращает текущую пару ключ и значение из массива и перемещает курсор массива
end() Устанавливает внутренний указатель массива на его последний элемент
extract() Импортирует переменные в текущую таблицу символов из массива
in_array() Проверяет, существует ли значение в массиве
key_exists() Проверяет, существует ли указанный ключ в массиве. Псевдоним array_key_exists()
key() Получает ключ из массива
ksort() Сортирует ассоциативный массив по ключу в порядке возрастания
krsort() Сортирует ассоциативный массив по ключу в обратном или убывающем порядке
list() Назначает переменные, как если бы они были массивом
natcasesort() Сортируем массив с использованием алгоритма «естественного порядка» без учета регистра
natsort() Сортируем массив с использованием алгоритма «естественного порядка»
next() Перемещает внутренний указатель массива на следующий
pos() Возвращает текущий элемент в массив. Псевдоним current()
prev() Перемещает внутренний указатель массива на предыдущий
range() Создает массив, содержащий диапазон элементов
reset() Устанавливает внутренний указатель массива на его первый элемент
rsort() Сортирует массив в обратном или убывающем порядке
shuffle() Перемешивает массив
sizeof() Подсчитывает все элементы в массиве. Псевдоним count()
sort() Сортирует массив в порядке возрастания
uasort() Сортирует массив с использованием пользовательской функции сравнения и поддержки ассоциацивного индекса
uksort() Сортировка массива по ключам с помощью пользовательской функции сравнения
usort() Сортировка массива по значениям с помощью пользовательской функции сравнения
Читайте также:  Blinking text with css

beget banner 480x320 skillbox banner 480x320 flexbe banner 480x320

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Источник

array_product

array_product() возвращает произведение значений массива.

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

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

Возвращает произведение как тип integer или float.

Примеры

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

$a = array( 2 , 4 , 6 , 8 );
echo «product(a) color: #007700″>. array_product ( $a ) . «\n» ;
echo «product(array()) color: #007700″>. array_product (array()) . «\n» ;

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

product(a) = 384 product(array()) = 1

User Contributed Notes 7 notes

This function can be used to test if all values in an array of booleans are TRUE.

function outbool ( $test )
return (bool) $test ;
>

$check [] = outbool ( TRUE );
$check [] = outbool ( 1 );
$check [] = outbool ( FALSE );
$check [] = outbool ( 0 );

$result = (bool) array_product ( $check );
// $result is set to FALSE because only two of the four values evaluated to TRUE

?>

The above is equivalent to:

$check1 = outbool ( TRUE );
$check2 = outbool ( 1 );
$check3 = outbool ( FALSE );
$check4 = outbool ( 0 );

?>

This use of array_product is especially useful when testing an indefinite number of booleans and is easy to construct in a loop.

Here’s how you can find a factorial of a any given number with help of range and array_product functions.

function factorial($num) return array_product(range(1, $num));
>

Just a little correction for Andre D’s answer: «(bool) array_product($array);» is equivalent with the conjunction of each array elements of $array, UNLESS the provided array is empty in which case array_product() will return 1, which will translate to boolean TRUE.

To mitigate this, you should expand the function with an additional check:

You can use array_product() to calculate the geometric mean of an array of numbers:

$a = [ 1 , 10 , 100 ];
$geom_avg = pow ( array_product ( $a ), 1 / count ( $a ));
// = 9.999999999999998 ≈ 10
?>

You can use array_product to calculate the factorial of n:
function factorial ( $n )
<
if( $n < 1 ) $n = 1 ;
return array_product ( range ( 1 , $n ));
>
?>

If you need the factorial without having array_product available, here is one:
function factorial ( $n )
<
if( $n < 1 ) $n = 1 ;
for( $p ++; $n ; ) $p *= $n —;
return $p ;
>
?>

array_product() can be used to implement a simple boolean AND search

$args = array( ‘first_name’ => ‘Bill’ , ‘last_name’ => ‘Buzzard’ );
$values [] = array( ‘first_name’ => ‘Brenda’ , ‘last_name’ => ‘Buzzard’ );
$values [] = array( ‘first_name’ => ‘Victor’ , ‘last_name’ => ‘Vulture’ );
$values [] = array( ‘first_name’ => ‘Bill’ , ‘last_name’ => ‘Blue Jay’ );
$values [] = array( ‘first_name’ => ‘Bill’ , ‘last_name’ => ‘Buzzard’ );

$result = search_for ( $values , $args );
var_dump ( $result );exit;

function search_for ( $array , $args ) $results = array();
foreach ( $array as $row ) $found = false ;
$hits = array();
foreach ( $row as $k => $v ) if ( array_key_exists ( $k , $args )) $hits [ $k ] = ( $args [ $k ] == $v );
>

$found = array_product ( $hits );
if (! in_array ( $row , $results ) && true == $found ) $results [] = $row ;
>

array (size=1)
0 =>
array (size=2)
‘first_name’ => string ‘Bill’ (length=4)
‘last_name’ => string ‘Buzzard’ (length=7)

An observation about the _use_ of array_product with primes:

$a=$arrayOfSomePrimes=(2,3,11);
// 2 being the first prime (these days)

$codeNum=array_product($a); // gives 66 (== 2*3*11)

echo «unique product(\$a) = » . array_product($a) . «\n»;

The 66 can (only) be split into its original primes,
which can be transformed into their place in the row of primes (2,3,5,7,11,13,17,19. ) giving (1,2,3,4,5,6,7,8. )

The 66 gives the places in the row of primes. The number «66» is unique as a code for

So you can define the combination of table-columns in «66». The bigger the combination, the more efficient in memory/transmission, the less in calculation.

  • Функции для работы с массивами
    • array_​change_​key_​case
    • array_​chunk
    • array_​column
    • array_​combine
    • array_​count_​values
    • array_​diff_​assoc
    • array_​diff_​key
    • array_​diff_​uassoc
    • array_​diff_​ukey
    • array_​diff
    • array_​fill_​keys
    • array_​fill
    • array_​filter
    • array_​flip
    • array_​intersect_​assoc
    • array_​intersect_​key
    • array_​intersect_​uassoc
    • array_​intersect_​ukey
    • array_​intersect
    • array_​is_​list
    • array_​key_​exists
    • array_​key_​first
    • array_​key_​last
    • array_​keys
    • array_​map
    • array_​merge_​recursive
    • array_​merge
    • array_​multisort
    • array_​pad
    • array_​pop
    • array_​product
    • array_​push
    • array_​rand
    • array_​reduce
    • array_​replace_​recursive
    • array_​replace
    • array_​reverse
    • array_​search
    • array_​shift
    • array_​slice
    • array_​splice
    • array_​sum
    • array_​udiff_​assoc
    • array_​udiff_​uassoc
    • array_​udiff
    • array_​uintersect_​assoc
    • array_​uintersect_​uassoc
    • array_​uintersect
    • array_​unique
    • array_​unshift
    • array_​values
    • array_​walk_​recursive
    • array_​walk
    • array
    • arsort
    • asort
    • compact
    • count
    • current
    • end
    • extract
    • in_​array
    • key_​exists
    • key
    • krsort
    • ksort
    • list
    • natcasesort
    • natsort
    • next
    • pos
    • prev
    • range
    • reset
    • rsort
    • shuffle
    • sizeof
    • sort
    • uasort
    • uksort
    • usort
    • each

    Источник

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