Hướng dẫn dùng clear map trong PHP

Định nghĩa Hàm array_map[] trong PHP

Hàm array_map[] trong PHP trả về một mảng chứa tất cả phần tử của mảng array1 sau khi đã áp dụng hàm callback tới mỗi phần tử đó. Số tham số mà hàm callback chấp nhận nên so khớp với số mảng đã truyền cho hàm array_map[] trong PHP.

Cú pháp hàm array_map[] trong PHP:

array array_map [ callback $callback, array $array1 [, array $array2...] ];

Tham số

  • callback:Bắt buộc. Hàm callback do người sử dụng tạo hoặc null
  • array1:Bắt buộc. Xác định một mảng
  • array2:Tùy ý. Xác định một mảng
  • array3:Tùy ý. Xác định một mảng

Trả về giá trị

Trả về một mảng chứa tất cả phần tử của mảng array1 đã được xử lý.

Ví dụ minh họa cách sử dụng hàm array_map[] trong PHP:

 

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ //localhost:8080/test.php sẽ cho kết quả:

Ví dụ sau sử dụng nhiều mảng.

Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ //localhost:8080/test.php sẽ cho kết quả:

Xem thêm Hàm trong php

Filter của PHP – array_filter

array_filter lọc mảng đầu vào qua một hàm callback [hàm này trả về boolean nhé]. Usage:

array array_filter [ array $array [, callable $callback [, int $flag = 0 ]] ]

Ví dụ 1:

Tạo 1 mảng số lẻ lọc từ mảng int có sẵn

Dùng foreach:

$numbers = [1, 2, 3, 4, 5];
$oddNumbers = [];
foreach [$numbers as $number] {
    if [$number % 2 != 0] {
        $oddNumbers[] = $number;
    }
}

var_dump[$oddNumbers]; // [1, 3, 5]

Dùng array_filter:

$numbers = [1, 2, 3, 4, 5];
$oddNumbers = array_filter[$numbers,function [$value]{
    return $value % 2 != 0;
}];

var_dump[$oddNumbers]; // [1, 3, 5]

Ví dụ 2:

Lọc một mảng không tuần tự dựa trên key và value

$inputs = [
    'first'    => 'John',
    'last'     => 'Doe',
    'password' => 'secret',
    'email'    => ''
];

$filtered = array_filter[$inputs, function [$value, $key] {
    return !empty[$value] && $key !== 'password'; // value có giá trị và key không phải password
}, ARRAY_FILTER_USE_BOTH]; // ARRAY_FILTER_USE_BOTH là flag để hàm callback nhận được cả key và value

var_dump[$filtered]; // ['first' => 'John','last' => 'Doe']

array_filter có 2 flag chính:

  • ARRAY_FILTER_USE_KEY hàm callback sẽ nhận giá trị đầu vào là key của phần tử
  • ARRAY_FILTER_USE_BOTH hàm callback sẽ nhận cả 2 giá trị đầu vào value & key

Từ giờ khi muốn lọc phần tử của một mảng thì hãy suy nghĩ cách dùng array_filter thay vì dùng mảng tạm và vòng lặp nhé. Chi tiết về usage của array_filter có thể tham khảo tại đây.

Jared Chu

Full-time Freelancer | Web Developer [WordPress / Magento / Laravel]

Hàm array_map[] sẽ lặp tất cả các phần tử của mảng và truyền vào hàm callback định nghĩa trước đó của người dùng. Hàm callback sẽ coi các phần từ của mảng như là những tham số và nó sẽ lặp lại cho đến khi tất cả các phần tử của mảng đã được truyền vào.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú pháparray_map[$func, $arr1, $arr2 ...];

Trong đó:

  • $func là hàm do người dùng định nghĩa sẽ nhận các phần tử truyền vào là các phần tử của $arr1, $arr2...
  • $arr1, $arr2 ... là các mảng dữ liệu truyền vào.

Ví dụ

Code

function show[$name, $age]{
	echo 'tên của tôi là ' . $name . ', tôi ' . $age . ' tuổi
'; } $name = [ 'Minh', 'Peter', 'John' ]; $age = [ 21, 23, 45 ]; array_map['show', $name, $age];

Kết quả

tên của tôi là Minh, tôi 21 tuổi
tên của tôi là Peter, tôi 23 tuổi
tên của tôi là John, tôi 45 tuổi

Tham khảo: php.net

Bài viết này được đăng tại [free tuts .net]

Chủ Đề