Mượn logic của gạch dưới.JS _.reject và tạo hai hàm (mọi người thích các hàm !!)
mảng numject_value: Hàm này chỉ đơn giản là từ chối giá trị được chỉ định (cũng hoạt động với PHP4,5,7)
function array_reject_value(array &$arrayToFilter, $deleteValue) {
$filteredArray = array();
foreach ($arrayToFilter as $key => $value) {
if ($value !== $deleteValue) {
$filteredArray[] = $value;
}
}
return $filteredArray;
}
mảng numject: Hàm này chỉ đơn giản là từ chối phương thức có thể gọi được (hoạt động với PHP> = 5.3)
function array_reject(array &$arrayToFilter, callable $rejectCallback) {
$filteredArray = array();
foreach ($arrayToFilter as $key => $value) {
if (!$rejectCallback($value, $key)) {
$filteredArray[] = $value;
}
}
return $filteredArray;
}
Vì vậy, trong ví dụ hiện tại của chúng tôi, chúng tôi có thể sử dụng các chức năng trên như sau:
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject_value($messages, 401);
hoặc thậm chí tốt hơn: (vì điều này cung cấp cho chúng tôi một cú pháp tốt hơn để sử dụng như mảng_filter )
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject($messages, function ($value) {
return $value === 401;
});
Ở trên có thể được sử dụng cho những thứ phức tạp hơn như giả sử chúng tôi muốn xóa tất cả các giá trị lớn hơn hoặc bằng 401, chúng tôi chỉ có thể làm điều này:
$messages = [312, 401, 1599, 3, 6];
$greaterOrEqualThan = 401;
$messages = array_reject($messages, function ($value) use $greaterOrEqualThan {
return $value >= $greaterOrEqualThan;
});