Emprunté la logique de underscore.JS _.reject et créé deux fonctions (les gens préfèrent les fonctions !!)
array_reject_value: Cette fonction rejette simplement la valeur spécifiée (fonctionne également pour 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: Cette fonction rejette simplement la méthode appelable (fonctionne pour 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;
}
Ainsi, dans notre exemple actuel, nous pouvons utiliser les fonctions ci-dessus comme suit:
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject_value($messages, 401);
ou encore mieux: (car cela nous donne une meilleure syntaxe à utiliser comme celle de array_filter )
$messages = [312, 401, 1599, 3, 6];
$messages = array_reject($messages, function ($value) {
    return $value === 401;
});
Ce qui précède peut être utilisé pour des choses plus compliquées comme disons que nous aimerions supprimer toutes les valeurs supérieures ou égales à 401, nous pourrions simplement le faire:
$messages = [312, 401, 1599, 3, 6];
$greaterOrEqualThan = 401;
$messages = array_reject($messages, function ($value) use $greaterOrEqualThan {
    return $value >= $greaterOrEqualThan;
});