2012-04-03 9 views
0

ケーキのPHPでは、選択ボックスのオプション配列内の1つ以上の要素を避ける方法。ケーキの選択ボックスのオプション配列内の1つ以上の要素を避ける方法php

$options = array('One','Two','First','Second'); 

echo $this->Form->select('trial', $options); 

は、ここで私は、「最初の」を避けるために、配列からの「第2」、ここではオプションの配列は、DBから来て欲しいです。

$options = array('One','Two'); 

それはケーキのPHP(すなわちarray $attributesまたは何か他のもの)の選択方法で任意の変更によってそれを行うか、手動で配列を検索し、値をドロップすることは可能ですか?

答えて

0

使用array_slice()

echo $this->Form->select('trial', array_slice($options, 0, 2)); 

編集:

代替ソリューション、あなたは配列の順序を知らない、との値が一意である場合ならば、array_search()を使用することです:

unset($options[array_search('First', $options)]); 

または値が一意ではありません、あなたはそれらをすべて削除したい場合は、array_keys() C

$keys = array_keys($options, 'First'); 

foreach ($keys as $key) 
{ 
    unset($options[$key]); 
} 
+0

'First'を避けると、結果として「First」という値、つまり配列オフセットは得られません。だから私はこれをどのように解決するのだろうか? –

+0

申し訳ありませんが、私はあなたが何を求めているのか分かりません。 'array( 'One'、 'Two'、 'Second')'が必要ですか?あなたは 'array( 'First')'をしたいですか? – MichaelRushton

+0

はい、 'array( 'First')'を避けたいと思います。ここで 'array_slice($ options、0、2)'は0で、2は長さです。しかし、配列のオフセット( 'First')はわかりません。それは最初の要素または最後の要素または配列の要素として来るかもしれません。 –

関連する問題