Hàm array_walk() trong PHP
Ví dụ
Áp dụng hàm tùy chỉnh cho mỗi phần tử trong mảng:
<?php function myfunction($value,$key) { echo "Chìa khóa $key có giá trị $value<br>"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction"); ?>
Định nghĩa và cách sử dụng
Hàm array_walk() áp dụng hàm tùy chỉnh cho mỗi phần tử trong mảng. Trong hàm, tên khóa và giá trị khóa của mảng là tham số.
Ghi chú:Bạn có thể thay đổi giá trị của phần tử mảng bằng cách chỉ định tham số đầu tiên của hàm tùy chỉnh là tham chiếu: &$value (xem ví dụ 2).
Lưu ý:Nếu cần thao tác với mảng sâu hơn (một mảng chứa một mảng khác), hãy sử dụng array_walk_recursive() hàm.
Cú pháp
array_walk(mảng,myfunction,userdata...)
Tham số | Mô tả |
---|---|
mảng | Bắt buộc. Định nghĩa mảng. |
myfunction | Bắt buộc. Tên hàm tùy chỉnh của người dùng. |
userdata,... | Tùy chọn. Định nghĩa tham số hàm tùy chỉnh. Bạn có thể truyền bất kỳ số lượng tham số nào vào hàm này. |
Giải thích
hàm array_walk() áp dụng hàm callback cho mỗi phần tử trong mảng. Nếu thành công thì trả về TRUE, ngược lại trả về FALSE.
Trong trường hợp thông thường myfunction nhận hai tham số.mảng Giá trị của tham số là thứ nhất, tên khóa là thứ hai. Nếu cung cấp các tham số tùy chọn userdata Sẽ được truyền làm tham số thứ ba vào hàm回调.
Nếu myfunction Nếu số lượng tham số cần thiết của hàm nhiều hơn số lượng tham số được cung cấp, mỗi lần gọi array_walk() sẽ myfunction Mỗi khi gọi array_walk() sẽ tạo ra một lỗi mức E_WARNING. Các cảnh báo này có thể được ngăn chặn bằng cách thêm toán tử lỗi của PHP @ trước khi gọi array_walk() hoặc bằng error_reporting().
Ghi chú:Nếu hàm gọi lại cần tác động trực tiếp đến giá trị trong mảng, có thể đặt tham số đầu tiên của hàm gọi lại là tham chiếu: &$value. (Xem ví dụ 3)
Ghi chú:Đặt tên và userdata Truyền vào myfunction Trong đó là hàm mới được thêm vào PHP 4.0.
Chi tiết kỹ thuật
Giá trị trả về: | Nếu thành công thì trả về TRUE, nếu không thì trả về FALSE. |
Phiên bản PHP: | 4+ |
Thêm ví dụ
Ví dụ 1
Đặt một tham số:
<?php function myfunction($value,$key,$p) { echo "$key $p $value<br>"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction","has the value"); ?>
Ví dụ 2
Thay đổi giá trị của một phần tử mảng (lưu ý &$value):
<?php function myfunction(&$value,$key) { $value="yellow"; } $a=array("a"=>"red","b"=>"green","c"=>"blue"); array_walk($a,"myfunction"); print_r($a); ?>