2016-08-24 10 views
0

PHP開発者(Railsのみ)ではなく、PHPコード(thebuggenie-app)のタスクがあり、selectのオプションを表示する順序を変更する必要があります。問題は多分簡単ですが、私にとってはそれほど簡単ではありません。selectの配列順序をカスタマイズする方法

私はPHPプロジェクトで見てきた何

私は(ミニ研究の後に)選択するには、このような何かを持っている:

<optgroup label="<?php echo __('Globally available roles'); ?>"> 
<?php foreach ($global_roles as $role): ?> 
    <option value="<?php echo $role->getId(); ?>"> 
    <?php echo $role>getName(); ?></option> 
<?php endforeach ;?> 
</optgroup> 

と(おそらく)global_rolesが反復される配列です。 Railsではカスタムオーダーを簡単に作成できますが、この場合はわかりません。何か情報が必要な場合は、私に知らせてください。アクションクラスで

私が見つけた:私は、最初のオプション(デフォルト)として、開発者が持っていると私は必要

今の
/** 
* Returns all project roles available 
* 
* @return array 
*/  
public static function getAll() 
{ 
    return TBGListTypesTable::getTable()->getAllByItemTypeAndItemdata(self::ROLE, null); 
} 

enter image description here

$this->global_roles = TBGRole::getAll();

をし、この1つはに私の心をリダイレクトテスターを第1(デフォルト)オプションとして使用する場合

コードが機能する場合は、すべてのソリューションが適切です。

アップデート1)

public function getAllByItemTypeAndItemdata($itemtype, $itemdata) 
{ 
    $this->_populateItemCache(); 
    $items = (array_key_exists($itemtype, self::$_item_cache)) ? self::$_item_cache[$itemtype] : array(); 
    foreach ($items as $id => $item) 
    { 
     if ($item->getItemdata() != $itemdata) unset($items[$id]); 
    } 

    return $items; 
} 
+0

それはより多くのSQL質問です。 'getAllByItemTypeAndItemdata()'コードを提供できますか? – jaro1989

+0

更新のgetAllByItemTypeAndItemdata() – Skrypter

答えて

2

あなたは)(usortを使用することができます。 この関数は、パラメータを作成して渡す2番目の関数を使用してソートします。 例:

<?php 
function cmp($a, $b) 
{ 
    if ($a == $b) { 
    return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

$a = array(3, 2, 5, 6, 1); 

usort($a, "cmp"); 

foreach ($a as $key => $value) { 
    echo "$chave: $valor\n"; 
} 
?> 
関連する問題