अंडरस्कोर का तर्क उधार लिया। 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;
});