2017-01-30 4 views
0

は、私は次のように配列を作成する必要があり得ないので、私は動的リストボックスを作成することができてい配列を作成し、完璧な出力

Array ([14] => Array ([selected] => selected) [15] => Array ([selected] => selected)) 

PHP

$select_pic=$connection->createCommand("select * from sdmatts_collection_relation where furniture_id ='$fid'"); 
$multi_collection= $select_pic->queryAll(); 
$selectvalue= array(); 
foreach ($multi_collection as $fcol){ 
    $fmulti_collection[] = array(
    $fcol['collection_id'] => array('selected' => 'selected'),); 
} 


I have create listbox dynamic select value in update time on yii1. 
I use this code in yii1 listbox update time. 

I use the static code 

$selected = array(
     '102' => array('selected' => 'selected'), 
     '103' => array('selected' => 'selected'), 
    ); 


also work listbox value are selected but i create dynamically that time not work. 

my dynamic array is. 

Array ([0] => Array ([14] => Array ([selected] => selected)) [1] => Array ([15] => Array ([selected] => selected))) 

but still not working my listbox in select value. 

のような出力を得るためにどのように

Array ([0] => Array ([14] => Array ([selected] => selected)) [1] => Array ([15] => Array ([selected] => selected))) 

yii1と追加/編集時間は値を選択します。

おかげ

+0

をあなたには、いくつかのコードを表示することができますか? – Shubhranshu

+2

両方の配列が同じであるようです(間違った編集?) –

+0

両方の配列が同じですエラー?? – Shibon

答えて

2

は、次のコードを試してみてください。

<?php 
$select_pic = $connection->createCommand("select * from sdmatts_collection_relation where furniture_id ='$fid'"); 
$multi_collection = $select_pic->queryAll(); 
$selectvalue = array(); 
foreach ($multi_collection as $fcol){ 
    $fmulti_collection[$fcol['collection_id']] = array('selected' => 'selected'); 
} 
1

使用iterator_to_array。これは他のものより速いです。

$result = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($yourArry)), 0); 
print_r($result); //Display your expected result. 

PHPコード:

$yourArry = Array (Array ("14" => Array ("selected" => "selected")), Array ("15" => Array ("selected" => "selected"))); 
$result = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($yourArry)), 0); 
print_r($result); 

結果:

Array ([0] => selected [1] => selected) 
+0

既存の配列を操作する代わりに、なぜ配列の作成を操作するだけではないのですか? –

+0

申し訳ありません今私は自分の答えを編集しています –

0

あなたはその配列を作成している場合は、代わりに[]のキーとしてcollection_id変数を使用します。

現在のコード:

$fmulti_collection[] = array(
    $fcol['collection_id'] => array('selected' => 'selected'),); 

変更するには:

$fmulti_collection[$fcol['collection_id']] = 
    => array('selected' => 'selected'),); 

注意:あなたが同じcollection_id値を持つ複数の要素を持っているので、もし$fcol['collection_id']は「ユニーク」でなければならないことに注意してください上書きされ、最初のメソッドを使用して配列の構造体を処理する必要があります。

関連する問題