2009-07-07 4 views
1

私は多言語のウェブサイトのためのすてきなテンプレートを使用しています。私はカントリーコードで注文された国の配列を持っています。これは、国名が正しい順ですが、他の言語ではOKではありません(例えば、英国は "U" "Royaumeユニ"配列をアルファベット順に並べ替える特別な機能がありますか?

は、Smartyの機能はアルファベット順に配列を注文することあり

答えて

2

次のようなSmartyの中でそれを割り当てる前にソートする必要があります。?

asort($countryList); 
$smarty->assign($countryList); 

用途:

  • asort()を使用して配列を値でソートします。
  • ksort()キーで配列をソートする。

    $array|@some_modifier 
    

    asort()として動作しません:あなたはこのようにSmartyの配列(@接頭辞が修飾子が配列全体ではなく、各要素に適用されることを意味)の修飾子を適用することができます

+1

ような何かを行うことができ、私は彼がそれが値ではなく、あなたがキーでソートしたくない –

+2

キーでソートされた、あなたは維持する値でソートしたいたいと思いました協会。元の投稿から理解したところから、キーは国コードで、値はラベルです。配列( 'GB' => '英国')。私の投稿は正しい。 –

+0

十分に公正な、downvoteが削除されました。全部のことを誤解して悪い – karim79

2

ただし、変更された配列を返すのではなく、渡された配列を変更してブール値を返すため、修飾子が使用されます。しかし、独自の関数を定義し、それを修飾子として使用することもできます。

function sort_array($array) { 
    asort($array); 
    return $array; 
} 

その後のSmartyに、あなたは

{foreach from=$array|@sort_array item=val} 
    {$val} 
{/foreach} 
関連する問題