Mercurial > hg > isophonics-drupal-site
diff vendor/dflydev/dot-access-data/src/Dflydev/DotAccessData/Util.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/dflydev/dot-access-data/src/Dflydev/DotAccessData/Util.php Thu Feb 28 13:21:36 2019 +0000 @@ -0,0 +1,54 @@ +<?php + +/* + * This file is a part of dflydev/dot-access-data. + * + * (c) Dragonfly Development Inc. + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Dflydev\DotAccessData; + +class Util +{ + /** + * Test if array is an associative array + * + * Note that this function will return true if an array is empty. Meaning + * empty arrays will be treated as if they are associative arrays. + * + * @param array $arr + * + * @return boolean + */ + public static function isAssoc(array $arr) + { + return (is_array($arr) && (!count($arr) || count(array_filter(array_keys($arr),'is_string')) == count($arr))); + } + + /** + * Merge contents from one associtative array to another + * + * @param array $to + * @param array $from + * @param bool $clobber + */ + public static function mergeAssocArray($to, $from, $clobber = true) + { + if ( is_array($from) ) { + foreach ($from as $k => $v) { + if (!isset($to[$k])) { + $to[$k] = $v; + } else { + $to[$k] = self::mergeAssocArray($to[$k], $v, $clobber); + } + } + + return $to; + } + + return $clobber ? $from : $to; + } +}