modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-06-05 18:43:25 +04:00
parent aa0df0b007
commit ce6c141acc
1 changed files with 22 additions and 9 deletions

View File

@ -192,6 +192,22 @@ class cl {
return $dest; return $dest;
} }
/**
* méthode de convenance qui sélectionne certaines clés de $array avec
* {@link self::select()} puis merge le tableau $merge au résultat.
*/
static final function selectm($array, ?array $mappings, ?array $merge=null): array {
return cl::merge(self::select($array, $mappings), $merge);
}
/**
* méthode de convenance qui merge $merge dans $array puis sélectionne
* certaines clés avec {@link self::select()}
*/
static final function mselect($array, ?array $merge, ?array $mappings): array {
return self::select(cl::merge($array, $merge), $mappings);
}
/** /**
* si $array est un array ou une instance de ArrayAccess, créer ou modifier * si $array est un array ou une instance de ArrayAccess, créer ou modifier
* l'élément dont la clé est $key * l'élément dont la clé est $key
@ -343,7 +359,7 @@ class cl {
* - [$key => $pkey] --> $dest[$key] = self::pget($array, $pkey) * - [$key => $pkey] --> $dest[$key] = self::pget($array, $pkey)
* - [$key => null] --> $dest[$key] = null * - [$key => null] --> $dest[$key] = null
* - [$pkey] --> $dest[$key] = self::pget($array, $pkey) * - [$pkey] --> $dest[$key] = self::pget($array, $pkey)
* avec $key = implode(".", $pkey)) * avec $key = implode("__", $pkey))
* - [null] --> $dest[] = null * - [null] --> $dest[] = null
* - [false] --> NOP * - [false] --> NOP
*/ */
@ -354,16 +370,13 @@ class cl {
if ($key === $index) { if ($key === $index) {
$index++; $index++;
if ($pkey === null) continue; if ($pkey === null) continue;
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey); $value = self::pget($array, $pkey);
$key = implode(".", $pkey); if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$key = implode("__", $pkey);
} elseif ($pkey === null) {
$value = null;
} else { } else {
if ($pkey === null) { $value = self::pget($array, $pkey);
$value = null;
} else {
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey);
}
} }
$dest[$key] = $value; $dest[$key] = $value;
} }