Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 07. August 2014 15:11
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
[GELÖST mit Workaround] Smarty und array_unique
Hallo zusammen,
momentan hänge ich mal wieder bei PHP/Smarty. Ich bin schon weit gekommen und erstelle mit Hilfe von {cgud_search searchinput=$phrase searchproperty='feldname' summarytemplate='search_result'} ein Suchergebnis für CGUserDirectory. Da ich diesen Code mehrfach aufrufe (für jeweils andere Feldnamen), erscheinen einige Einträge doppelt, wenn der gesuchte Begriff in mehreren Feldern vorkommt.
Ich habe jetzt schon einen Array, der alle Ergebnisse einzeln beinhaltet. Nun möchte ich diesen Array vor der Ausgabe bereinigen. Ich habe gesehen, dass es für PHP die Funktion array_unique gibt, die doppelte Einträge entfernt.
Leider habe ich solch eine Möglichkeit nicht bei Smarty direkt gefunden.
Mein Gedanke ist daher, dass ich den Array zunächst an PHP übergeben, in dort bereinige und dann wieder zurück an Smarty übergebe. Soweit zur Theorie .
Leider bekomme ich das praktisch nicht umgesetzt, obwohl es sicher ganz einfach ist. Alle Schnipsel, die ich gefunden habe, beziehen sich auf normale Variablen, aber nicht auf Arrays.
Ich bin für jeden Tipp oder gar Codeschnipsel dankbar ...
Beitrag geändert von jeff1980 (07. August 2014 19:27)
Offline
#2 07. August 2014 15:44
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [GELÖST mit Workaround] Smarty und array_unique
Was ist damit:
{$array_1|array_unique:$array_2}
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 07. August 2014 15:51
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
Re: [GELÖST mit Workaround] Smarty und array_unique
Leider nicht, gibt einen leeren Array zurück ...
Habe auch mit als erstes {$array_1|array_unique} probiert, aber ebenfalls ohne Erfolg.
Edit:
Hab jetzt doch noch einen Workaround gefunden, da der Array ja sowieso per foreach ausgegeben werden soll:
[== Smarty ==]
{foreach from=$array item='item'}
{if !$done.$item}
{$done.$item = 1}
{$item}
{/if}
{/foreach}
Weiß nicht, ob es wirklich die sauberste Lösung ist und interessieren würde mich array_unique dennoch. Aber zumindest läuft es erst mal.
Beitrag geändert von jeff1980 (07. August 2014 16:07)
Offline
Seiten: 1