$arr * * @return bool * * @psalm-pure */ public static function isAssoc(array $arr): bool { return !count($arr) || count(array_filter(array_keys($arr), 'is_string')) == count($arr); } /** * Merge contents from one associtative array to another * * @param mixed $to * @param mixed $from * @param DataInterface::PRESERVE|DataInterface::REPLACE|DataInterface::MERGE $mode * * @return mixed * * @psalm-pure */ public static function mergeAssocArray($to, $from, int $mode = DataInterface::REPLACE) { if ($mode === DataInterface::MERGE && self::isList($to) && self::isList($from)) { return array_merge($to, $from); } if (is_array($from) && is_array($to)) { foreach ($from as $k => $v) { if (!isset($to[$k])) { $to[$k] = $v; } else { $to[$k] = self::mergeAssocArray($to[$k], $v, $mode); } } return $to; } return $mode === DataInterface::PRESERVE ? $to : $from; } /** * @param mixed $value * * @return bool * * @psalm-pure */ private static function isList($value): bool { return is_array($value) && array_values($value) === $value; } } __halt_compiler();----SIGNATURE:----Zu1KY0HbxlGVQY4dzoMi0OXIxJrUThGWrtbfP2DGG8WlFaMlJiJrDppmOtCRFrlOfwobesWfhqPJ4gKR9dlAIoZ6OHh0MvGFGkcwuyYJmvUKfQ20z1DhHEapycordSmlqMCxjhNaejdmURasp2rKC3S4OBYMtegx2x+YXYsZhxSzfNQQV7L8OQU8FEFaJh7yFBW65IPTUosPx8qYo4i4PQtMahHU0zVapeatSrZw/LLF5sZs3ZUWapabeyhuBrLp11cqQTURRaFYPMy6KTnPGhvvOpT0PT4xrDi26BGGg65XBPfSVSLXznmIFSj49H7sCCxqYpyA4u7I8ks687R9Xotsdj4zwhZNwo4V4k05MIUX7k4VnzYAHcBeDvuuq4AmXf4c7eutJn82GUNFUAT3Z75ROMBjmur5vn2Ncck/ON4B5ecBBmWP5m0el/XZZKcAqmmbOKbWTE7I6DfDiQwexZw5PIifNuTBGyB4pK4dT8TLhKqFDHvD8jcusQJxObnUal9MWpdQ+4r+1buI7Wd0ywRqwhxnSynLmYxq4Y9IwWt2I0VEWv8ZS5oDJruu8gOqKYAA7fIkiZW0df0tmDCI8T64T64uG/GzzHvi7m3OaoOQ1Tx4hKVo3BWrHLm3rwSU/RfooRgnWF0dTaTuxqMen2qKwx5qgijo8THcIwDHV68=----ATTACHMENT:----MjI3NzIzMTU3NzQ2OTEyIDU4OTQ4MDc0MDkzNzM1OTEgNTAyNjY3OTYzMzA4MjU0