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]; else $array = [$array];
return false; return false;
} }
} }

View File

@ -146,12 +146,34 @@ class cl {
return $array !== null? array_keys($array): []; 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 * retourner la première valeur de $array ou $default si le tableau est null
* ou vide * ou vide
*/ */
static final function first($array, $default=null) { static final function first(?iterable $iterable, $default=null) {
if (is_array($array)) return $array[array_key_first($array)]; if (is_array($iterable)) {
return $iterable[array_key_first($iterable)];
}
if (is_iterable($iterable)) {
foreach ($iterable as $value) {
return $value;
}
}
return $default; return $default;
} }
@ -159,9 +181,17 @@ class cl {
* retourner la dernière valeur de $array ou $default si le tableau est null * retourner la dernière valeur de $array ou $default si le tableau est null
* ou vide * ou vide
*/ */
static final function last($array, $default=null) { static final function last(?iterable $iterable, $default=null) {
if (is_array($array)) return $array[array_key_last($array)]; if (is_array($iterable)) {
return $default; 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;
} }
############################################################################# #############################################################################