Alt çizginin mantığını ödünç aldı.JS _.reject ve iki fonksiyon yarattı (insanlar fonksiyonları tercih ediyor !!)
array_reject_value: Bu işlev belirtilen değeri basitçe reddediyor (PHP4,5,7 için de çalışıyor)
function array_reject_value(array &$arrayToFilter, $deleteValue) {
$filteredArray = array();
foreach ($arrayToFilter as $key => $value) {
if ($value !== $deleteValue) {
$filteredArray[] = $value;
}
}
return $filteredArray;
}
array_reject: Bu işlev sadece çağrılabilir yöntemi reddediyor (PHP> = 5.3 için çalışıyor)
function array_reject(array &$arrayToFilter, callable $rejectCallback) {
$filteredArray = array();
foreach ($arrayToFilter as $key => $value) {
if (!$rejectCallback($value, $key)) {
$filteredArray[] = $value;
}
}
return $filteredArray;
}
Mevcut örneğimizde yukarıdaki işlevleri aşağıdaki gibi kullanabiliriz:
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject_value($messages, 401);
hatta daha iyi: (bu bize daha iyi bir sözdizimi vermek olarak gibi kullanmak array_filter biri)
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject($messages, function ($value) {
return $value === 401;
});
Yukarıdakiler, 401'e eşit veya daha büyük olan tüm değerleri kaldırmak istediğimizi varsayalım gibi daha karmaşık şeyler için kullanılabilir:
$messages = [312, 401, 1599, 3, 6];
$greaterOrEqualThan = 401;
$messages = array_reject($messages, function ($value) use $greaterOrEqualThan {
return $value >= $greaterOrEqualThan;
});