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.

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.

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

Sử dụng array_map trong PHP có cú pháp như sau:

array_map(callable $callback, array $array1 [, array $… ]);

Trong đó:

  • callable $callback: là hàm mà bạn muốn áp dụng cho mảng
  • array $array1: là mảng đầu tiên mà bạn muốn áp dụng hàm
  • array $…: các mảng tiếp theo mà bạn muốn áp dụng hàm

Ví dụ:

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

$squaredNumbers = array_map(function($n) { return $n * $n; }, $numbers);

print_r($squaredNumbers);

Kết quả:

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

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ả.

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 

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ế.

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