Đị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áp: array_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]