Version 1
[yaffs-website] / vendor / dflydev / dot-access-data / src / Dflydev / DotAccessData / Util.php
diff --git a/vendor/dflydev/dot-access-data/src/Dflydev/DotAccessData/Util.php b/vendor/dflydev/dot-access-data/src/Dflydev/DotAccessData/Util.php
new file mode 100644 (file)
index 0000000..546da22
--- /dev/null
@@ -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;
+    }
+}