From baefbd1b9652741b8b899880a9f97ad010557283 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 10 Jan 2008 02:15:06 +0000 Subject: [PATCH] Merged revisions 47807 via svnmerge from svn://svn.silverstripe.com/silverstripe/modules/sapphire/branches/2.2.0-mesq ........ r47807 | ischommer | 2008-01-10 14:07:06 +1300 (Thu, 10 Jan 2008) | 1 line added is_associative() ........ git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@47810 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/ArrayLib.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/ArrayLib.php b/core/ArrayLib.php index 776c1ab5c..6f9bbb8ac 100755 --- a/core/ArrayLib.php +++ b/core/ArrayLib.php @@ -67,6 +67,23 @@ class ArrayLib extends Object { return $arr; } + /** + * Determines if an array is associative by checking + * for existing keys via array_key_exists(). + * @see http://nz.php.net/manual/en/function.is-array.php#76188 + * + * @param array $arr + * @return boolean + */ + static function is_associative($arr) { + if(is_array($arr) && ! empty($arr)) { + for($iterator = count($arr) - 1; $iterator; $iterator--) { + if (!array_key_exists($iterator, $arr)) return true; + } + return !array_key_exists(0, $arr); + } + return false; + } } ?> \ No newline at end of file