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;
}
/**
* 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
* l'élément dont la clé est $key
@ -343,7 +359,7 @@ class cl {
* - [$key => $pkey] --> $dest[$key] = self::pget($array, $pkey)
* - [$key => null] --> $dest[$key] = null
* - [$pkey] --> $dest[$key] = self::pget($array, $pkey)
* avec $key = implode(".", $pkey))
* avec $key = implode("__", $pkey))
* - [null] --> $dest[] = null
* - [false] --> NOP
*/
@ -354,17 +370,14 @@ class cl {
if ($key === $index) {
$index++;
if ($pkey === null) continue;
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey);
$key = implode(".", $pkey);
} else {
if ($pkey === null) {
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$key = implode("__", $pkey);
} elseif ($pkey === null) {
$value = null;
} else {
if (!is_array($pkey)) $pkey = explode(".", strval($pkey));
$value = self::pget($array, $pkey);
}
}
$dest[$key] = $value;
}
return $dest;