我有一个标准表来存储表单输入,列有“firstName,lastName,email”。实际上还有很多,但为了简单起见,我会把它留在3。这些字段需要发送到外部API,但键实际上是整数...所以“firstName”实际上作为“12345”发送到API。
我有第二个包含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 :(得分: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。