2017-01-24 9 views
0

私は2つの既存の配列から1つの配列を作成しようとしています(これは変更できません)。これを行うために、別のforeachにネストされているforeachに配列を作成します。ネストされたforeachが正しくドロップダウンしていない

私が使用したコード:このコードで

$language_option = array(); 
    foreach(Languages::getFullSelectOptionsList() as $country_description_1 => $country_code){ 
     foreach(Languages::getFullSelectOptionsList(TRUE) as $country_description_2 => $country_code){ 
      $language_option[$country_code] = $country_description_1.' - '.$country_description_2; 
     } 
    } 

"言語:: getFullSelectOptionsList()は、" 第一国の説明を配列で返します。

「Languages :: getFullSelectOptionsList(TRUE)」は、2番目の国の説明を含む配列を返します。

これは私のコードが何をするかです: dropdown results

しかし、私はそれをやってみたいことは次のとおりです。 dropdown wished results

あなたが最初の写真でcountry_description_1」の最後の配列値を見ることができるように"が使用されています。

私のコードに間違いがありますか?それはできないのですか?これを行う簡単な方法はありますか?

ありがとうございました。

+0

あなたの内側のループで '$ country_code'を上書きすることを意味しましたか?それが問題なのでしょうか? –

+0

'Languages :: getFullSelectOptionsList()'を返す実際の配列を表示してください。 – dinesh

+0

あなたはforループを使い、最初の配列を数え、そのカウントまでループを作成し、その2つの配列のインデックス$ iを使ってデータを取得する必要があります。 現在、最初の国を取得していて、2番目の配列のすべての国をループしているため、その結果が得られます。私がしたい場合は、 – webDev

答えて

0

ここでは、このコードのリファレンスを得ることができます。 しかし、あなたが記述またはコード(キー値)を得るためにあなたの配列構造に応じて代わりに$first_array[$i].' - '.$second_array[$i]プット・コードの$first_array[$i]

$language_option = array(); 
$first_array = Languages::getFullSelectOptionsList(); 
$second_array = Languages::getFullSelectOptionsList(TRUE); 
for($i=0;$i<count($first_array); $i++){ 
    $language_option[$country_code] = $first_array[$i].' - '.$second_array[$i]; 
} 

値を指定する必要がありますので、これは動作しません。

+0

ありがとうShailesh!私はこれを使って作業しようとしますが、私はまだ一般的なプログラミングには全く新しいです。 – Vedana

+0

forループを使って配列をループする例を見てください。あなたの場合、ネストされたforeachは 'n * n'回回りますが、' n'回だけループする必要があります。 – webDev

+1

は、 '$ country_code'は未定義です。多分あなたは 'key($ first_array [$ i])'またはそれに似たものに置き換えることができるかもしれません。 – Cashbee

関連する問題