这是一个简化版本。我有一个数组$ gather_data,其值为
Array
(
[id] => 10711
[log_id] => 892
[form_id] => 2
[value] => fname
)
Array
(
[id] => 10712
[log_id] => 892
[form_id] => 3
[value] => lastname
)
Array
(
[id] => 10717
[log_id] => 892
[form_id] => 8
[value] => email
)
// ...
// etc
我如何获得如下输出:
fname lastname | email
fname lastname | email
etc
我试过了:
foreach($form_data as $form_field)
{
$collected_data_sql = "SELECT * FROM `".WPSC_TABLE_SUBMITED_FORM_DATA."` WHERE `log_id` = '".$purchase['id']."' AND `form_id` = '".$form_field['id']."' LIMIT 1";
$collected_data = $wpdb->get_results($collected_data_sql,ARRAY_A);
$collected_data = $collected_data[0];
list($fname, $lastname, $email) = $collected_data;
echo $fname. ' '.$lastname.' | '.$email;
}
但这没效果。
答案 0 :(得分:1)
您必须考虑$collected_data
中的数组索引,因此list()不起作用。这只有array('John', 'Smith', 'john.smith@example.com');
您需要遍历结果并从'value'键中提取值。
答案 1 :(得分:1)
如果您使用的功能尚不完全清楚,请查看手册。 list
期望一个包含0的数字索引的数组。您可以使用array_values
将数组从字符串键转换为数字键:
list($fname, $lastname, $email) = array_values($collected_data);
(如果那是您的问题,我不太确定,因为您的问题没有提供有关您具体问题的更多信息)
此外,您有一个数组数组,因此您需要提取您感兴趣的数据,例如:
$fname = $fname['value'];
$lastname= $lastname['value'];
$email = $email['value'];
但这只是示范性的。
答案 2 :(得分:0)
为什么不回显$ gather_data_sql,并在IDE上进行测试,看看你的SQL是否正确。我相信你的错误是在你所处的条件下开始的。