1. Hàm array_product() trong PHP

Hàm array_product() trong PHP có nhiệm vụ tính toán một mảng. Cụ thể hàm này sẽ tính toán tích của các phần tử trong mảng. Tuy nhiên hàm sẽ chỉ chấp nhận mảng chỉ bao gồm các số. Nếu hàm truyền vào có bất cứ dữ liệu nào khác dữ liệu số hàm sẽ trả về giá trị 0. Với những mảng rỗng thì hàm sẽ trả về giá trị 1. Hàm được giới thiệu và sử dụng từ phiên bản PHP 5.1.0

2. Cú pháp hàm array_product() trong PHP

Ta có cú pháp của hàm array_product() trong PHP là :

array_product($array)

Trong đó $array là mảng đầu vào mà ta cần tính toán. Hàm cũng chỉ có một tham số bắt buộc duy nhất là $array .

Hàm array_product() có giá trị truyền vào là một mảng. Hàm này sẽ trả về tích các giá trị trong mảng đó. Trong đó:

  • Mảng sẽ trả về 0 nếu trong mảng truyền vào có ít nhất một giá trị không phải số
  • Mảng sẽ trả về 1 nếu trong mảng truyền vào là một mảng rỗng
  • Mảng sẽ trả về tích của các phần tử trong mảng nếu mảng là một mảng số thông thường không phải một trong hai trường hợp trên

Ví dụ : tính và trả về tích của phần tử trong mảng

<?php
$a=array(5,5,9,7);
echo(array_product($a));
?>

Kết quả

1575

Với ví dụ này khá đơn giản ta chỉ cần truyền mảng $a vào hàm array_product() để tính toán thôi.

3. Ví dụ về hàm array_product() trong PHP

Ví dụ 1: Tính tích của một mảng có giá trị không phải dạng số

<?php
$a1=array(1, 2, 3, 'a');
  
echo(array_product($a1));
?>

Kết quả

0

Với hàm $a1 có một giá trị không phải số là a nên khi truyền vào hàm array_product() kết quả trả về sẽ là 0. Dù mảng truyền vào chỉ có một hay có nhiều phần tử không phải giá trị số thì kết quả trả về sẽ đều là 0

Ví dụ 2: Tích tích của mảng rỗng

<?php

$a2=array();
  
echo(array_product($a1));
?>

Kết quả

1

Với mảng $a2 là một mảng rỗng nên giá trị trả về sẽ là 1

Ví dụ 3: Tạo hàm tính gia thừa

<?php
function factorial($num) {
    return array_product(range(1, $num));
}
printf("%d", factorial(5)); //120
?>

Kết quả

120

Trong ví dụ trên, bằng việc kết hợp hàm range() để tạo ra một mảng, từ 1 đến giá trị truyền vào, ta có thể tạo ra một hàm tính giai thừa cho mình. Với giá trị truyền vào là 5 kết quả giai thừa của 5 là 120