2011-06-30 16 views
0

イムは、PHPでこの単純な問題で立ち往生:whileループ内で多次元配列を行う方法は?

$words = array(); 
while ($allrow = mysqli_fetch_array($all)) 
{  
    $words = "".utf8_encode($allrow["eng"])."" => "".$allrow["id"]."";     
} 

foreach ($words[] as $key => $word) { 

を私はいくつかの単語とそのidを持つ配列を持っていたいです。 foreachループでは、各単語にどのIDがあるのか​​を知る必要があります。

答えて

2

あなたのアレイ構築構文がオフになっている、これを試してみてください。

// array key is the id, swap if needed, but I assume the ids are unique 
$words[$allrow["id"]] = utf8_encode($allrow["eng"]); 

あなたは$words = $anything言うたび、あなたは最後の繰り返しを上書きしています。

これはパースエラーを生成しておく必要があります。

."" => "". 

それはあなたのテストで滑っかわかりません。空の""文字列も必要ありません。

1

foreachループ内で、各エントリを配列に追加します。

$words[utf8_encode($allrow["eng"])] = $allrow["id"]; 

あなたが実際にあなたが割り当てを逆に、より多くの可能性があるキーとしてIDをしたい場合:

$words[$allrow["id"]] = utf8_encode($allrow["eng"]); 

同様に、あなたは$words[]を使用して繰り返すべきではありません。それは意味をなさない。 []で配列の値を割り当て、配列は、基本的な概念である反復したよう
foreach($words as $key => $value)

を使用して、あなたがそれらを使用しようとする前にPHP arrays上に勉強しなければなりません。

+0

私もこのコードは混乱で、その最後のビットを見ていませんでした。 +1は、基本的なPHPでの推奨読書です。 –

0
$words[$allrow["id"]] = utf8_encode($allrow["eng"]); 

、その後、foreachループを使用しているforeach ($words as $key => $word) {