aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/hubloc.php16
-rw-r--r--include/text.php28
2 files changed, 29 insertions, 15 deletions
diff --git a/include/hubloc.php b/include/hubloc.php
index d5abda7fb..0d1a2e560 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -266,25 +266,11 @@ function hubloc_mark_as_down($posturl) {
function locations_by_netid($netid) {
- $strloc = '';
-
$locs = q("select hubloc_addr as location from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and hubloc_deleted = 0 and site_dead = 0",
dbesc($netid)
);
- if($locs) {
- foreach($locs as $l) {
- if(!($l['location']))
- continue;
- if(strpos($strloc,$l['location']) !== false)
- continue;
- if(strlen($strloc))
- $strloc .= ', ';
- $strloc .= $l['location'];
- }
- }
-
- return $strloc;
+ return array_elm_to_str($locs,'location',', ');
}
diff --git a/include/text.php b/include/text.php
index 8ec6ebace..10bbc751a 100644
--- a/include/text.php
+++ b/include/text.php
@@ -3261,3 +3261,31 @@ function purify_filename($s) {
return '';
return $s;
}
+
+
+/**
+ * @brief array_elm_to_str($arr,$elm,$delim = ',') extract unique individual elements from an array of arrays and return them as a string separated by a delimiter
+ *
+ * empty elements (evaluated after trim()) are ignored.
+ * @param $arr array
+ * @param $elm array key to extract from sub-array
+ * @param $delim string default ','
+ * @returns string
+ */
+
+function array_elm_to_str($arr,$elm,$delim = ',') {
+
+ $tmp = [];
+ if($arr && is_array($arr)) {
+ foreach($arr as $x) {
+ if(is_array($x) && array_key_exists($elm,$x)) {
+ $z = trim($x[$elm]);
+ if(($z) && (! in_array($z,$tmp))) {
+ $tmp[] = $z;
+ }
+ }
+ }
+ }
+ return implode($tmp,$delim);
+}
+