modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-05-30 06:41:57 +04:00
parent b4992148fd
commit cb6ae7d11e
2 changed files with 35 additions and 6 deletions

View File

@ -35,5 +35,4 @@ class A {
else $array = [$array];
return false;
}
}

View File

@ -146,12 +146,34 @@ class cl {
return $array !== null? array_keys($array): [];
}
/**
* retourner un array avec les éléments retournés par l'itérateur. les clés
* numériques sont réordonnées, les clés chaine sont laissées en l'état
*/
static final function all(?iterable $iterable): array {
if ($iterable === null) return [];
if (is_array($iterable)) return $iterable;
$array = [];
foreach ($iterable as $key => $value) {
if (is_int($key)) $array[] = $value;
else $array[$key] = $value;
}
return $array;
}
/**
* retourner la première valeur de $array ou $default si le tableau est null
* ou vide
*/
static final function first($array, $default=null) {
if (is_array($array)) return $array[array_key_first($array)];
static final function first(?iterable $iterable, $default=null) {
if (is_array($iterable)) {
return $iterable[array_key_first($iterable)];
}
if (is_iterable($iterable)) {
foreach ($iterable as $value) {
return $value;
}
}
return $default;
}
@ -159,9 +181,17 @@ class cl {
* retourner la dernière valeur de $array ou $default si le tableau est null
* ou vide
*/
static final function last($array, $default=null) {
if (is_array($array)) return $array[array_key_last($array)];
return $default;
static final function last(?iterable $iterable, $default=null) {
if (is_array($iterable)) {
return $iterable[array_key_last($iterable)];
}
$value = $default;
if (is_iterable($iterable)) {
foreach ($iterable as $value) {
# parcourir tout l'iterateur pour avoir le dernier élément
}
}
return $value;
}
#############################################################################