【发布时间】:2012-03-30 14:23:54
【问题描述】:
我有一个主数组,它是 MySQL 查询用户表返回的数据,如下所示:
array(36) {
[0]=>
array(4) {
["id"]=>
string(1) "101"
["email"]=>
string(15) "kkkk@gggg.com"
["firstname"]=>
string(8) "aaaaa"
["lastname"]=>
string(12) "bbbbb"
}
[1]=>
array(4) {
["id"]=>
string(1) "102"
["email"]=>
string(17) "mmmmm@hhhhh.com"
["firstname"]=>
string(12) "vvvv"
["lastname"]=>
string(12) "zzzzz"
}
[2]=>
array(4) {
["id"]=>
string(2) "103"
["email"]=>
string(17) "eeee@gmail.com"
["firstname"]=>
string(6) "ggggg"
["lastname"]=>
string(12) "zzzzz"
等等…… 第二个数组也是 MySQL 查询,它来自具有两个外键的表,使关系 b/w 两个表多对多,如下所示:
array(7) {
[0]=>
array(2) {
["user_id"]=>
string(3) "101"
["group_id"]=>
string(1) "1"
}
[1]=>
array(2) {
["user_id"]=>
string(3) "102"
["group_id"]=>
string(1) "1"
}
[2]=>
array(2) {
["user_id"]=>
string(3) "103"
["group_id"]=>
string(1) "1"
}
最终目标是在第一个数组中创建第 5 个键,类似于:
[“组”]=>...
我可以用每个用户参与的组的 id 来填充,最后看起来像这样:
[“组”]=>“1,2,3,4”
换句话说,因为关系是多对多的,所以当我推送新值时,用户可能参与多个组,我不想创建具有值的新键,而是连接现有值带有新 ID 的密钥。
到目前为止,我得到了这样的东西:
$query = $this->mUsers->getAll(); //Main query to get users data
$results = $this->mUsers->getGroupsAndUsers(); //Query for getting the group_id and user_id
// Looping both arrays to find matching ID's
foreach($query as $key=>$value){ //$value['id'] returns the value of the users id from table users
foreach($results as $row){
if ($value['id']==$row['user_id'])
{
array_push($value,"groups",$row['group_id']);
}
}
}
但我不工作。我尝试了其他一些东西,但现在什么都没有。
谢谢 勒隆
【问题讨论】:
标签: php sql codeigniter