2015-07-09 98 views
0

我有一個數組,看起來像這樣..構建SQL查詢 - PHP

Array 
(
    [fm] => Array 
     (
      [133.74] => Array 
       (
        [base] => Array 
         (
          [0] => 2015-09-29 
          [1] => 2015-09-30 
         ) 

       ) 

      [202.59] => Array 
       (
        [base] => Array 
         (
          [0] => 2015-10-01 
         ) 

       ) 

     ) 

    [fmtax] => Array 
     (
      [13.51] => Array 
       (
        [0] => 2015-09-29 
        [1] => 2015-09-30 
       ) 

      [20.46] => Array 
       (
        [0] => 2015-10-01 
       ) 

     ) 

) 

,我需要建立一個SQL語句插入相關的值。我在想它需要是每個數組項的唯一查詢。

所以我最終需要像

$sql = "insert into mytable ('price', 'tax', 'date') 
     values ('133.74', '13.51', '2015-09-29')"; 

我有什麼到目前爲止,這是...

foreach ($sale['fm'] as $key => $value) { 
    $i=0; 
    $g=count($value['base']); 
    while($i < $g) { 
     echo($sale['fm'][$key]['base'][$i]."<br />"); 
     $i++; 
    } 
} 

這爲「FM」鍵做得很好 - 但我越來越掛斷瞭如何從第二個關聯的「fmtax」數組鍵中獲取數值。我正在考慮使用像current/next一樣的東西,因爲它在迭代...但是我有點兒撓撓頭。

回答

0

我假設fmfmtax都具有相同數量的元素,並且fmfmtax的相關元素(價格和稅收)的順序相同。你可以做的是 - 稅收從fmtax存儲與這樣簡單的按鍵:

$taxes = array(); 
$c = 0; 
foreach ($sale['fmtax'] as $key => $value) { 
    $taxes[$c] = $key; 
    $c++; 
} 

然後你就可以以這種方式從你自己的代碼塊訪問這個新$taxes數組:

$c = 0; 
foreach ($sale['fm'] as $key => $value) { 
    //Here you have the related tax 
    $tax = $taxes[$c]; 

    $i=0; 
    $g=count($value['base']); 
    while($i < $g) { 
     echo($sale['fm'][$key]['base'][$i]."<br />"); 
     $i++; 
    } 

    $c++; 
}