下面是函数:
protected function get_answers_with_question_id($id){
global $wpdb;
$sql = "SELECT *
FROM {$wpdb->prefix}aysquiz_answers
WHERE question_id=" . $id;
$answer = $wpdb->get_results($sql, 'ARRAY_A');
return $answer;
}
调用函数:
foreach ($questions_ids as $id) {
$answers2[] = $this->get_answers_with_question_id2($id);
}
实际产量:
[[{"answer":"1000"}],[{"answer":"1000"}],[{"answer":"1000"}]]
我需要经典数组:array(key=>value,key=>value,key =>value,等等)
2条答案
按热度按时间7kjnsjlb1#
在性能改进方面,可以在查询中使用
IN
运算符。对于整个数组,取消
implode()
this,获取数组中的每个值,并将它们添加到查询中的括号内的逗号分隔列表中。这应该返回所有的值,你会得到循环通过,并得到他们一个接一个,但没有开销:
这个改变,也许也没有创建数组,只是直接在
$answers2
上分配结果,应该会得到你想要的格式:考虑一下保护你的SQL查询,它是整数/id,应该没问题,虽然,你真的想删除和转义你在查询中使用的任何值,特别是,如果用户可以用他们的输入调整查询。
nzrxty8p2#
谢谢你。
questions_ids的格式为:[“3”,“4”,“5”]
但它返回null:
如果我编辑为: