Underscore.JS _.reject හි තර්කනය ණයට ගෙන ශ්රිත දෙකක් නිර්මාණය කළේය (මිනිසුන් ශ්රිතවලට වැඩි කැමැත්තක් දක්වයි !!)
array_reject_value: මෙම ශ්රිතය නිශ්චිතව දක්වා ඇති අගය ප්රතික්ෂේප කරයි (PHP4,5,7 සඳහාද ක්රියා කරයි)
function array_reject_value(array &$arrayToFilter, $deleteValue) {
$filteredArray = array();
foreach ($arrayToFilter as $key => $value) {
if ($value !== $deleteValue) {
$filteredArray[] = $value;
}
}
return $filteredArray;
}
array_reject: මෙම ශ්රිතය හුදෙක් කැඳවිය හැකි ක්රමය ප්රතික්ෂේප කරයි (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;
}
එබැවින් අපගේ වර්තමාන උදාහරණයේ දී අපට ඉහත කාර්යයන් පහත පරිදි භාවිතා කළ හැකිය:
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject_value($messages, 401);
හෝ ඊටත් වඩා හොඳය: (මෙය අපට array_filter වැනි භාවිතා කිරීමට වඩා හොඳ වාක්ය ඛණ්ඩයක් ලබා දෙයි )
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject($messages, function ($value) {
return $value === 401;
});
ඉහත සඳහන් දේ වඩාත් සංකීර්ණ දේවල් සඳහා භාවිතා කළ හැකිය, 401 ට වඩා වැඩි හෝ සමාන සියලු අගයන් ඉවත් කිරීමට අපි කැමතියි යැයි කියමු.
$messages = [312, 401, 1599, 3, 6];
$greaterOrEqualThan = 401;
$messages = array_reject($messages, function ($value) use $greaterOrEqualThan {
return $value >= $greaterOrEqualThan;
});