2011-05-09 45 views
0

我有一個標準表來存儲表單輸入,列名爲「firstName,lastName,email」。實際上還有更多,但爲了簡單起見,我將它保留爲3。這些字段需要發送到外部API,但鍵實際上是整數...所以「firstName」實際上以「12345」的形式發送到API。根據PHP中另一個表的結果分配一個數組鍵值

我有第二個表具有API鍵和表單鍵。

我正在建立一個使用API​​密鑰和表單值的數組。例如:$ data [12345] ='John'。實際上,如果有多個表單提交,它應該是$ data [0] [12345] ='John',$ data [1] [12345] ='Jane',依此類推。

這是我目前的解決方案:

//$return is an object containing all the form submissions 
$i = 0; 
     $data = array(); 
     foreach ($return as $ret) { 
      foreach ($ret as $k => $v) { 
        // function that runs a mySQL query "SELECT apikey FROM api WHERE formkey = '$k'" and returns the apikey 
        $apikey = getApiKey($k); 
        $data[$i][$apikey] = $v; 
      } 
      $i++; 
     } 

這工作,但顯然不是最佳的,因爲它運行多個查詢。有沒有辦法清除它?

回答

0

以下是我想出的一種解決方案,可能有助於某人。其他(更好的)解決方案也將被讚賞。

// I'm using CodeIgniter, but this just puts the apikey into an array with the formkey as the array key 

$sql = "SELECT apikey,formkey FROM api"; 
$query = $this->db->query($sql); 
$return = array(); 
foreach ($query->result() as $row) { 
    $return[$row->formkey] = $row->apikey; 
} 

$i = 0; 
$data = array(); 
foreach ($return as $ret) { 
    foreach ($ret as $k => $v) { 
     $data[$i][$return[$k]] = $v; 
    } 
    $i++; 
} 

這砍下80我的數據庫調用到2

相關問題