From 87e262cfe2a57e732ae41788beae9264e3e76a9e Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 30 Apr 2025 08:23:06 +0400 Subject: [PATCH] ajout cl::delv --- php/src/cl.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/php/src/cl.php b/php/src/cl.php index 4978afe..a1073ee 100644 --- a/php/src/cl.php +++ b/php/src/cl.php @@ -302,6 +302,27 @@ class cl { } } + /** + * si $array est un array ou une instance de ArrayAccess&Traversable, + * supprimer le premier élément dont la valeur est $value + * + * @param array|ArrayAccess $array + */ + static final function delv(&$array, $value, bool $strict=false): void { + if (is_array($array)) { + $key = array_search($value, $array, $strict); + if ($key !== false) unset($array[$key]); + } elseif ($array instanceof ArrayAccess && $array instanceof Traversable) { + $found = false; + foreach ($array as $key => $val) { + if ($strict) $found = $val === $value; + else $found = $val == $value; + if ($found) break; + } + if ($found) $array->offsetUnset($key); + } + } + /** retourner le nombre d'éléments de $array */ static final function count(?array $array): int { return $array !== null? count($array): 0;