From fe4d0d8acb9cf5f5634cfbe73a79da1687d3268b Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Mon, 8 Jul 2024 11:01:40 +0400 Subject: [PATCH] ajouter merge2 --- src/A.php | 5 +++++ src/cl.php | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/A.php b/src/A.php index f1dd8a9..a2db747 100644 --- a/src/A.php +++ b/src/A.php @@ -73,6 +73,11 @@ class A { $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 { self::ensure_narray($dest); $dest = cl::select($dest, $mappings, $inverse); diff --git a/src/cl.php b/src/cl.php index c3afe7b..754659c 100644 --- a/src/cl.php +++ b/src/cl.php @@ -302,6 +302,7 @@ class cl { /** * 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. */ static final function merge(...$arrays): ?array { @@ -313,6 +314,21 @@ class cl { 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 {