Rate this post

array_map trong PHP là một hàm của PHP, nó cho phép bạn áp dụng một hàm cho từng phần tử của một mảng. Hàm này trả về một mảng mới với các phần tử được áp dụng hàm đã chỉ định.

Các bài viết liên quan:

Ví dụ:

$numbers = array(1, 2, 3, 4, 5);

$squared_numbers = array_map(function($number) {

    return $number * $number;

}, $numbers);

print_r($squared_numbers); 

// Output: Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )

Trong ví dụ trên, hàm array_map được sử dụng để tính bình phương của các phần tử trong mảng $numbers và trả về một mảng mới $squared_numbers với các giá trị bình phương.

Xem thêm array_diff trong php là gì ?

Cú pháp array_map

Cú pháp của hàm array_map trong PHP như sau:

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

Trong đó:

  • $callback là một hàm hoặc phương thức mà bạn muốn áp dụng lên từng phần tử của mảng.
  • $array1 là mảng ban đầu mà bạn muốn thực hiện áp dụng hàm.
  • $... là các mảng bổ sung (tùy chọn) khác mà bạn muốn áp dụng hàm vào cùng một lúc.

Hàm array_map sẽ trả về một mảng mới chứa kết quả sau khi áp dụng hàm lên từng phần tử của mảng ban đầu.

Dưới đây là một ví dụ để minh họa cú pháp:

function multiplyByTwo($num) {
    return $num * 2;
}

$array = [1, 2, 3, 4, 5];

$result = array_map('multiplyByTwo', $array);

print_r($result);

Kết quả:

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

Trong ví dụ này, hàm multiplyByTwo được áp dụng lên từng phần tử của mảng $array, và kết quả được trả về là một mảng mới chứa các phần tử đã được nhân với 2.

Xem thêm Node.js Net

Tại sao nên sử dụng array_map trong php ? 

Sử dụng array_map trong PHP có nhiều lợi ích, bao gồm:

  1. Tiện dụng: Nó giúp bạn áp dụng một hàm cho tất cả các phần tử của một mảng một cách dễ dàng, giảm thiểu việc viết lặp lại các vòng lặp.
  2. Tái sử dụng: Có thể sử dụng cùng một hàm cho nhiều mảng khác nhau, giúp tái sử dụng mã nguồn và giảm thiểu việc viết lại cùng một hàm cho nhiều mảng khác nhau
  3. Tăng tốc độ: Sử dụng array_map có thể giúp tăng tốc độ xử lý cho việc áp dụng một hàm cho nhiều phần tử của mảng so với việc áp dụng một hàm cho từng phần tử trong mảng bằng cách sử dụng vòng lặp.

Xem thêm Map trong python

Sử dụng array_map trong php như thế nào ? 

Để sử dụng hàm array_map trong PHP, bạn có thể làm theo các bước sau:

  1. Xác định hàm muốn áp dụng lên từng phần tử của mảng. Hàm này có thể là một hàm do người dùng tự định nghĩa hoặc là một hàm có sẵn trong PHP.
  2. Chuẩn bị một mảng chứa dữ liệu ban đầu.
  3. Gọi hàm array_map và truyền hàm áp dụng và mảng ban đầu vào như các đối số.
  4. Lưu kết quả trả về từ hàm array_map vào một biến để sử dụng.

Dưới đây là một ví dụ đơn giản về cách sử dụng array_map để nhân mỗi phần tử của một mảng với một số cho trước:

// Hàm áp dụng lên từng phần tử
function multiplyByTwo($num) {
    return $num * 2;
}

// Mảng ban đầu
$array = [1, 2, 3, 4, 5];

// Sử dụng array_map để nhân từng phần tử của mảng với 2
$result = array_map('multiplyByTwo', $array);

// In kết quả
print_r($result);

Kết quả sẽ là một mảng mới chứa các phần tử đã được nhân với 2:

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

Bạn có thể thay đổi hàm áp dụng và mảng ban đầu theo nhu cầu của mình.

Xem thêm Foreach trong JavaScript là gì ?

Những lưu ý khi sử dụng array_map trong php 

  1. Hàm array_map chỉ chấp nhận một hàm xử lý duy nhất, nếu bạn muốn sử dụng nhiều hàm xử lý, bạn cần sử dụng hàm call_user_func_array hoặc hàm array_walk.
  2. Hàm array_map sẽ trả về một mảng mới với các giá trị đã được xử lý, nếu bạn muốn thay đổi giá trị trong mảng gốc thì cần sử dụng hàm array_walk hoặc dùng & trước tên mảng
  3. Nếu bạn muốn truyền tham số cho hàm xử lý, bạn cần sử dụng hàm create_function hoặc closure.
  4. Chỉ sử dụng array_map với mảng có số lượng phần tử lớn, nếu số lượng phần tử nhỏ thì sử dụng vòng lặp for hoặc foreach sẽ tốt hơn.
  5. Chú ý trong trường hợp hàm xử lý trả về giá trị boolean, giá trị false sẽ bị loại bỏ khỏi mảng kết quả.

Xem thêm Stepwise Regression là gì?

Các phương thức tương tự array_map

Ngoài hàm array_map, PHP cũng cung cấp một số phương thức tương tự để xử lý mảng. Dưới đây là một số phương thức phổ biến:

  1. array_walk(): Hàm array_walk cho phép duyệt qua từng phần tử của mảng và áp dụng một hàm do người dùng định nghĩa lên từng phần tử đó. Khác với array_map, hàm này không tạo ra một mảng mới mà chỉ thực hiện các thay đổi trực tiếp trên mảng ban đầu.
  2. array_filter(): Hàm array_filter được sử dụng để lọc các phần tử của mảng dựa trên một điều kiện do người dùng định nghĩa. Nó trả về một mảng mới chứa các phần tử thỏa mãn điều kiện đã cho.
  3. array_reduce(): Hàm array_reduce thực hiện việc giảm kích thước của một mảng bằng cách áp dụng một hàm tổ hợp lên các phần tử của mảng. Kết quả cuối cùng là một giá trị duy nhất. Hàm reduce này có thể được sử dụng để tính tổng, tích, ghép chuỗi, và các phép toán tổ hợp khác trên mảng.
  4. array_map_recursive(): Đây là một hàm tùy chỉnh được định nghĩa bởi người dùng để áp dụng một hàm lên từng phần tử của mảng một cách đệ quy. Nó giúp áp dụng hàm cho cả các mảng lồng nhau trong mảng chính.

Các phương thức trên đều có mục đích và cách sử dụng riêng. Bạn có thể tìm hiểu thêm về cách sử dụng chi tiết của từng phương thức trong tài liệu PHP hoặc các nguồn tài liệu trực tuyến khác.

Xem thêm Market Segmentation (Phân đoạn thị trường)

Ví dụ 

  1. Tông giá trị của tất cả các phần tử trong mảng:
$arr = [1, 2, 3, 4, 5];

$newArr = array_map(function($val){ return $val*2; }, $arr);

print_r($newArr); // Output: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
  1. Chuyển đổi tất cả các giá trị trong mảng thành chữ hoa:
$arr = ['a', 'b', 'c', 'd'];

$newArr = array_map('strtoupper', $arr);

print_r($newArr); // Output: Array ( [0] => A [1] => B [2] => C [3] => D )
  1. Sử dụng array_map với nhiều mảng:
$arr1 = [1, 2, 3, 4];

$arr2 = [5, 6, 7, 8];

$newArr = array_map(function($val1, $val2){ return $val1 + $val2; }, $arr1, $arr2);

print_r($newArr); // Output: Array ( [0] => 6 [1] => 8 [2] => 10 [3] => 12 )
  1. Sử dụng array_map để chuyển đổi một mảng các đối tượng thành mảng các giá trị của thuộc tính:
class Person {

    public $name;

    public $age;

    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }

}

$people = array(new Person("John Doe", 25), new Person("Jane Smith", 30));

$people_name = array_map(function($person){ return $person->name; }, $people);

print_r($people_name); 

// Output: Array ( [0] => John Doe [1] => Jane Smith )

Kết luận về array_map

array_map là một hàm trong PHP có chức năng duyệt qua từng phần tử của một mảng và áp dụng một hàm cho từng phần tử đó. Hàm này có thể giúp cho việc xử lý dữ liệu trong mảng dễ dàng hơn và tiện lợi hơn. Khi sử dụng array_map, chúng ta cần lưu ý rằng hàm truyền vào phải có chức năng xử lý đúng với dữ liệu của mảng, và cần kiểm tra kết quả trả về của hàm để đảm bảo chính xác. Ví dụ về sử dụng array_map cho phép chúng ta hiểu rõ hơn về cách sử dụng hàm này trong thực tế.

Xem thêm ID và Class trong CSS, điều khác biệt

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now