2016-12-05 9 views
0

ich folgendem archieve will:Smarty: Implode ein Array und Zuweisen zu einem var

„Ich bin ein beschreibender Satz“

Ich habe es in einem Array (für Schlüsselwörter zu schaffen für Meta-Tags) über:

[{assign var='meta_key_arr' value=' '|explode:$oEntry->FCLONGDESC_1}]     

, die bisher funktioniert. Mein Ergebnis ist ein Array wie folgt aus:

array([I],[am],[a],[descriptive],[sentence]) 

Das Ziel ist es, einen String, wie die „Ich bin, ein, beschreibend, Satz“ zu bekommen

ich das Array durch ein Komma getrennt implodieren wollte: [{',' | implode: $ meta_key_arr}]

Das funktioniert gut, aber ich möchte die Werte einer anderen Variablen $ meta_key zuweisen. Was nicht funktioniert. Ich habe das Handbuch gelesen, aber das einzige, was ich finden konnte, war die obige Syntax.

[{assign var='meta_key' value=' '|', '|implode:$meta_key_arr}] 

hat nicht funktioniert. Und das hat auch nicht funktioniert.

[{assign var='meta_key' value=' ' ', '|implode:$meta_key_arr}] 

Wie kann ich die Implodierungsfunktion richtig verwenden? Es gibt einen viel einfacheren Weg.

+1

Viel einfacher ist es, Daten in einem Controller zu verarbeiten. –

+0

@u_mulder Ich bin sehr neu bei Smarty. Eigentlich versuche ich und Fehler. Aber ich kenne PHP trotzdem. –

+0

Smarty ist eine Vorlagen-Engine. Es bedeutet, dass es nur Daten ausgibt. Deshalb sollten Sie Ihre Daten in einem Controller vorbereiten –

Antwort

0

Die Lösung:

[{foreach from=$meta_key_arr item=mkey}] 
    [{assign var='meta_key' value=', '|implode:$meta_key_arr}] 
[{/foreach}] 
0

Warum Sie nicht nur die Original-Zeichenkette verwenden und ersetzen Räume mit Komma?

[{assign var='meta_key' value=$oEntry->FCLONGDESC_1|replace:' ':', '}] 
Verwandte Themen