foreach循环和一个来自sql的多个值的键

时间:2017-07-28 15:11:07

标签: php loops foreach

我有一个问题是使用key(class_id)创建一个数组,并且在这个键中有很多users_ids。我有函数,其中$ ids是一个带数字的简单数组。 我想这样做:

array => 
   1 (class_id) =>
     0=> 'user_id'
     1=> 'user_id',
   2 (class_id) =>
     0=> 'user_id'
     1=> 'user_id'

现在我正在返回这个(只有一个user_id,应该有更多:

array => 
   1=> 'user_id'
   2=> 'user_id'

static function getUsersIdsByClassIds($ids)
{
    $userIds = [];

    foreach($ids as $classId) {

        $object = self::select('user_id')
            ->where('class_id', $classId)
            ->get();

        foreach($object as $sth){
            $userIds[$classId]=$sth->user_id;
        }
    }

    return $userIds;
}

我无法修复它来做我想要的结构。

1 个答案:

答案 0 :(得分:3)

在这里

foreach($object as $sth){
   $userIds[$classId] = $sth->user_id;
}

你覆盖每次迭代的值。但实际上你想要添加一个新条目:

foreach($object as $sth){
                // here it is
   $userIds[$classId][] = $sth->user_id;
}