Php 组合两个阵列时出现问题

Php 组合两个阵列时出现问题,php,arrays,Php,Arrays,我将从数组开始,以使图片清晰。我从数据库中获取两个数组 这是数组1中的一条记录 Array ( [0] => Array ( [vraag_id] => 2 [vraag_titel] => Je bent geen randdebiel he [categorie_id] => 1 [categorie_naam] => Eierstokkanker / Ovarium [gebruiker] => Bas Koesveld [reacties] =>

我将从数组开始,以使图片清晰。我从数据库中获取两个数组

这是数组1中的一条记录

Array ( [0] => Array ( [vraag_id] => 2 [vraag_titel] => Je bent geen randdebiel he [categorie_id] => 1 [categorie_naam] => Eierstokkanker / Ovarium [gebruiker] => Bas Koesveld [reacties] => 13 [vraag_inhoud] => Omdat ik het zeg verdomme! [vraag_datum] => 2012-11-19 00:00:00 ) )
这是数组2的部分完整记录

Array ( [0] => Array ( [vraag_id] => 1 [resultaat] => 2 ) [1] => Array ( [vraag_id] => 2 [resultaat] => 1 ) [2] => Array ( [vraag_id] => 3 [resultaat] => 1 ) [3] => Array ( [vraag_id] => 4 [resultaat] => 1 ) [4] => Array ( [vraag_id] => 5 [resultaat] => 1 ) [5] => Array ( [vraag_id] => 6 [resultaat] => 1 ) [6] => Array ( [vraag_id] => 7 [resultaat] => 1 ) [7] => Array ( [vraag_id] => 8 [resultaat] => 1 ) [8] => Array ( [vraag_id] => 9 [resultaat] => 1 ) [9] => Array ( [vraag_id] => 10 [resultaat] => 1 ) [10] => Array ( [vraag_id] => 11 [resultaat] => 1 ) [11] => Array ( [vraag_id] => 12 [resultaat] => 1 ) )
我想将数组2中的列resultaat添加到数组1的记录中,其中vraag_id匹配

我对PHP非常陌生,已经尝试了很多,但都没有成功。有人能帮我吗

编辑:

谢谢大家的评论!我想我应该说得更清楚一点。这两个内容来自同一个表,但具有不同的查询。查询如下:

选择T.id作为vraag_id,T.titel作为vraag_titel,C.id作为categorie_id,C.naam作为categorie_naam,L.gebruikersnaam作为gebruiker,P.inhoud作为vraag_inhoud,P.datum作为vraag_数据
来自C类
在C.id=T.categorie上连接主题T
连接T.id上的P柱=P.vraag
在P.lid=L.id上连接盖L
其中P.lid=2
按P.datum DESC订购
这使我能够从数据库中获得所需的结果。现在,我想计算一个问题有多少答复,我使用以下查询:

选择vraag作为vraag_id,计数(*)
邮寄
其中lid=2
按vraag_id分组
现在我如何加入这些查询


非常感谢

假设第一个数组中的每个vraag_id在第二个数组中只有一个条目,那么大致(最简单):


假设第一个数组中的每个vraag_id在第二个数组中只有一个条目,然后大致(最简单):


您可以做的最好的事情是将查询中的结果连接到数据库

也就是说,你的问题很容易解决:

// rework your array2:
$temp = array();
foreach ($array2 as $index) {
    $temp[$index['vraag_id']]=$index['resultaat'];
}

// then add the resultaat to the right record:

for($i=0; $i< count($array1); $i++) {
    $array1[$i]['resultaat'] = $temp[$array1[$i]['vraag_id']];
}
我现在手头没有mysql,不能自己测试,但排除打字错误,应该可以)


诀窍是在同一个表上使用子查询并动态地联接它

最好的方法是将查询中的结果联接到数据库

也就是说,你的问题很容易解决:

// rework your array2:
$temp = array();
foreach ($array2 as $index) {
    $temp[$index['vraag_id']]=$index['resultaat'];
}

// then add the resultaat to the right record:

for($i=0; $i< count($array1); $i++) {
    $array1[$i]['resultaat'] = $temp[$array1[$i]['vraag_id']];
}
我现在手头没有mysql,不能自己测试,但排除打字错误,应该可以)


诀窍是在同一个表上使用一个子查询,并动态地连接它。同意@moonwave99:你可以用php做到这一点,但使用Mysql连接对机器来说成本更低(我认为,不确定,尽管在小环境中的差异不明显),更重要的是,结果可以在不同的语言上重复使用,并且看起来更干净/优雅,也许他没有访问执行查询的层的权限。这是一个遥远的情况,但不是一个不可能的情况(我已经在一个类似的情况相当长的一段时间前)。我要编辑我的文章。。。请稍等。你看过array_merge函数了吗?你想听听。同意@moonwave99:你肯定可以用php实现这一点,但使用Mysql连接对机器来说成本更低(我认为,不确定,尽管在小环境中差异不明显),更重要的是,结果可以在不同的语言上重复使用,并且看起来更干净/优雅,也许他没有访问执行查询的层的权限。这是一个遥远的情况,但不是一个不可能的情况(我已经在一个类似的情况相当长的一段时间前)。我要编辑我的文章。。。请稍等。你看过数组合并功能了吗?请看一下我编辑的帖子,告诉我是否有办法用mysql查询解决这个问题?太棒了!谢谢!它不仅起作用了,我还理解了查询背后的逻辑。再次感谢您给我上了宝贵的一课:)请看一下我编辑的帖子,告诉我是否有办法使用mysql查询解决这个问题?太棒了!谢谢!它不仅起作用了,我还理解了查询背后的逻辑。再次感谢你给我上了宝贵的一课:)
SELECT T.id AS vraag_id, T.titel AS vraag_titel, C.id AS categorie_id, C.naam AS 
       categorie_naam, L.gebruikersnaam AS gebruiker, P.inhoud AS vraag_inhoud, 
       P.datum AS vraag_datum, res.resultaat 
FROM categorie C
JOIN topic T ON C.id = T.categorie
JOIN post P ON T.id = P.vraag
JOIN lid L ON P.lid = L.id 
JOIN (SELECT vraag AS vraag_id, COUNT( * ) as resultaat
    FROM post
    WHERE lid = 2
    GROUP BY vraag_id) as res ON T.id = res.id
WHERE P.lid = 2 
ORDER BY P.datum DESC