ajout cl::delv
This commit is contained in:
parent
aabdb3f765
commit
87e262cfe2
@ -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;
|
||||
|
Reference in New Issue
Block a user