modifs.mineures sans commentaires
This commit is contained in:
parent
b4992148fd
commit
cb6ae7d11e
40
src/cl.php
40
src/cl.php
|
@ -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;
|
||||
}
|
||||
|
||||
#############################################################################
|
||||
|
|
Loading…
Reference in New Issue