ajouter merge2

This commit is contained in:
Jephté Clain 2024-07-08 11:01:40 +04:00
parent 104da4515b
commit fe4d0d8acb
2 changed files with 21 additions and 0 deletions

View File

@ -73,6 +73,11 @@ class A {
$dest = cl::merge($dest, ...$merges); $dest = cl::merge($dest, ...$merges);
} }
static function merge2(&$dest, ...$merges): void {
self::ensure_narray($dest);
$dest = cl::merge2($dest, ...$merges);
}
static final function select(&$dest, ?array $mappings, bool $inverse=false): void { static final function select(&$dest, ?array $mappings, bool $inverse=false): void {
self::ensure_narray($dest); self::ensure_narray($dest);
$dest = cl::select($dest, $mappings, $inverse); $dest = cl::select($dest, $mappings, $inverse);

View File

@ -302,6 +302,7 @@ class cl {
/** /**
* Fusionner tous les tableaux spécifiés. Les valeurs null sont ignorées. * Fusionner tous les tableaux spécifiés. Les valeurs null sont ignorées.
* IMPORTANT: les clés numériques sont réordonnées.
* Retourner null si aucun tableau n'est fourni ou s'ils étaient tous null. * Retourner null si aucun tableau n'est fourni ou s'ils étaient tous null.
*/ */
static final function merge(...$arrays): ?array { static final function merge(...$arrays): ?array {
@ -313,6 +314,21 @@ class cl {
return $merges? array_merge(...$merges): null; return $merges? array_merge(...$merges): null;
} }
/**
* Fusionner tous les tableaux spécifiés. Les valeurs null sont ignorées.
* IMPORTANT: les clés numériques NE SONT PAS réordonnées.
* Retourner null si aucun tableau n'est fourni ou s'ils étaient tous null.
*/
static final function merge2(...$arrays): ?array {
$merged = null;
foreach ($arrays as $array) {
foreach (self::with($array) as $key => $value) {
$merged[$key] = $value;
}
}
return $merged;
}
############################################################################# #############################################################################
static final function map(callable $callback, ?iterable $array): array { static final function map(callable $callback, ?iterable $array): array {