diff --git a/core/database.class.php b/core/database.class.php index 8ac5309f..48805ae9 100644 --- a/core/database.class.php +++ b/core/database.class.php @@ -250,7 +250,7 @@ class Database { $tags = array_map(array($this, 'resolve_alias'), $tags); $tags = array_map(array($this, 'sanitise'), $tags); - $tags = array_unique($tags); // remove any duplicate tags + $tags = array_iunique($tags); // remove any duplicate tags // delete old $this->delete_tags_from_image($image_id); diff --git a/core/util.inc.php b/core/util.inc.php index 6ef44206..37ced395 100644 --- a/core/util.inc.php +++ b/core/util.inc.php @@ -327,6 +327,23 @@ function array_add($array, $element) { return $array; } +// case insensetive uniqueness +function array_iunique($array) { + $ok = array(); + foreach($array as $element) { + $found = false; + foreach($ok as $existing) { + if(strtolower($element) == strtolower($existing)) { + $found = true; break; + } + } + if(!$found) { + $ok[] = $element; + } + } + return $ok; +} + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Event API *