第一个表: question 第二张表: answer 我用它们进行考试。 对于每个问题,我有3个答案。我的问题是要一起获取它们,获取后我想要这样的数组:
[0]=>array(8)
{
["question"]=> string(13) "question test"
["name_id"]=> string(1) "1"
["answer"]=> string(1) "1"
["points"]=> string(1) "1"
["answer"]=> string(1) "2"
["points"]=> string(1) "2"
["answer"]=> string(1) "3"
["points"]=> string(1) "3"
}
但是因为关键答案和要点相同,所以在获取后我得到了:
[0]=>array(4)
{
["question"]=> string(13) "question test"
["name_id"]=> string(1) "1"
["answer"]=> string(1) "1"
["points"]=> string(1) "1"
}
[1]=>array(4)
{
["question"]=> string(13) "question test"
["name_id"]=> string(1) "1"
["answer"]=> string(1) "2"
["points"]=> string(1) "2"
}
[2]=>array(4)
{
["question"]=> string(13) "question test"
["name_id"]=> string(1) "1"
["answer"]=> string(1) "3"
["points"]=> string(1) "3"
}
我写的查询是:
select question , name_id , answer, points from question , answer where question.id_question = answer.id_aquestion
有什么解决方案可以在一个数组而不是3个数组中提取它们吗? (我使用codeigniter的框架)
答案 0 :(得分:0)
首先不能将相同的键名具有不同的值。 它只会覆盖值... 这是您可以做的:
foreach ($results as $rowKey => $rowVal) {
$processedResults[0] = [
"question" => $rowVal["question"],
"name_id" => $rowVal["name_id"],
"answer" . $rowKey => $rowVal["answer"],
"points" . $rowKey => $rowVal["points"]
];
}
这样您将获得
[0]=>array(x)
{
["question"] => string(13) "question test"
["name_id"] => string(1) "1"
["answer0"] => string(1) "1"
["points0"] => string(1) "1"
["answer1"] => string(1) "2"
["points1"] => string(1) "2"
["answer2"] => string(1) "3"
["points2"] => string(1) "3"
....
["answerx"] => string(1) "x"
["pointsx"] => string(1) "x"
}
希望它会有所帮助:)