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 */
|
/** retourner le nombre d'éléments de $array */
|
||||||
static final function count(?array $array): int {
|
static final function count(?array $array): int {
|
||||||
return $array !== null? count($array): 0;
|
return $array !== null? count($array): 0;
|
||||||
|
Reference in New Issue
Block a user