2012-01-18 10 views
0

私は2次元配列をmysqlに保存します。問題は、私はその配列からデータを取得し、ここでDBに保存しないか、である私の配列である:2次元配列からデータをdbに保存する -

Array 
(
[1a] => Array 
    (
     [ans] => 1 
    ) 

[2a] => Array 
    (
     [ans] => 1 
     [oth] => ABC 
    ) 

[3a] => Array 
    (
     [ans] => 1 
    ) 

[3b] => Array 
    (
     [ans] => 2 
    ) 

[3f] => Array 
    (
     [oth] => 
    ) 

保存ときに、それは次のようになります:

| qid | ans | oth | 
=================== 
| 1a | 1 |  | 
| 2a | 1 | ABC | 
| 3a | 1 |  | 
| 3b | 2 |  | 
| 3f |  |  | 
=================== 

私はおかげで助けてください。

+0

あなたは、列がNULL値を受け入れるかどうか、あなたのコラムについて、もう少し情報を提供することができた名前の配列を持っていると言いますか?それは、あらゆるソリューションの構造に大きな違いをもたらすでしょう。 – CBusBus

答えて

1

みましょうあなたは彼らのデフォルトは何をしているではない場合、X

foreach($x as $key=>$details) 
{ 
    $qid = $key; 
    $ans = $details["ans"]; 
    $oth = $details["oth"]; 
    //Then Save to DB 
    // Insert into table (qid,ans,oth) values('$qid',$ans,'$oth') ... 

} 
+0

これは、それらの配列キーが存在しないエントリはカバーしません。あなたがそれらを扱うことができる前にOPは列の詳細(NULL、DEFAULT)を提供する必要があります。 – CBusBus

+0

ループ中に配列キーがなかったら、vars $ othと$ ansはNULL値を取得し、テーブルの列のデフォルト値が挿入されると思います。ありがとうございました 。 – Ashraf

+0

それは悲しいことにそのように動作しません。もしあなたがisset($ array [ CBusBus

0
foreach ($your_array as $qid => $value) { 
    $ans = isset($value['ans']) ? $value['ans'] : null; 
    $oth = isset($value['oth']) ? $value['oth'] : null; 
    //then you get the $qid, $ans, $oth and insert them to the db. 
    .... 
}