2016-10-19 3 views
1

私は単にデータベースから取得するために、名前のリストを持つ配列が必要ですが、配列を印刷すると、すべての名前が別々の配列に格納されていることがわかりました。それはなぜですか、どうすれば1つに保存できますか?マルチレベル配列を取得するのはなぜですか?

マイコード:

<? 
// Product names 
$producten    = "SELECT `naam` FROM `producten`"; 
$productencon   = $conn->query($producten); 
$productencr   = array(); 
while ($productencr[] = $productencon->fetch_array()); 
echo '<pre>'; 
print_r($productencr); 
echo '</pre>'; 
?> 

その印刷されたアレイの出力がこれです:

enter image description here

答えて

2

fetch_arrayので、列の連想名と数値インデックスの両方を返します。

あなたが使用する必要がある列の名前のみたい場合:fetch_assocをしたり、数字のみをしたい場合は、fetch_row

fetch_arrayを使用する必要がありますあなたが残しておきたい場合はfetch_assocfetch_row

両方の組み合わせでありますfetch_array最初のパラメータとして結果の型を指定することもできます。デフォルトはMYSQLI_BOTHです。

あなたはもっとここをチェック:http://php.net/manual/en/mysqli-result.fetch-array.php

+0

よしは理にかなって、私はFETCH_ASSOCにそれを変更すると、それはまだ別々の配列内のすべての名前を配置します。ちょうど数値なし – twan

+0

@twanはい、それはそれが動作する方法です。データベースから複数の列を選択できるためです。 –

+0

すべての名前を1つの配列に簡単に取り込む方法はありますか? – twan

0

試してみてください。この

$output=array(); 
while ($productencr = $productencon->fetch_array()){ 
    $output[]=$productencr["naam"]; 
} 
echo '<pre>'; 
print_r($output); 
echo '</pre>'; 
関連する問題