使用yield返回数据数组

时间:2015-05-30 19:21:16

标签: php mysql arrays rest yield

我从未在PHP中使用过生成器。我理解使用它的方法: Foreach一个数组为每个值执行一些任务,比如将特定行放入一个大文件中以删除一些caracteres ..

我需要什么:

我需要从我的dabatase中检索所有乐队。当然,我有'限制''争论不要超过PHP的记忆(那里有30 000个频段......)。 我必须过滤值并将新数组返回到客户端到我的REST API中。

我想知道的事情:

对我来说,创建一个名为' generator'执行下面的代码?

在所有情况下,我必须创建一个新数组以将其返回到我的方法

    $bands = Models\Bands::find($bandsParameters);
    $json  = [];

    foreach ($bands as $band) {
        $followers    = $band->getFollowers();
        $followersArr = [];

        foreach ($followers as $follower) {
            $followerImage = $follower->getImage();
            $followerObj   = (object)[
                'id'        => $follower->id,
                'username'  => $follower->username,
                'image'     => $followerImage->url,
                'online'    => $follower->online,
                'createdOn' => $follower->createdOn,
                'updatedOn' => $follower->updatedOn,
                'lastLogin' => $follower->lastLogin,
            ];
            $followersArr[] = $followerObj;
        }

        $info    = $band->getInfo($bandInfoParameters)->getFirst();
        $bandObj = (object)[
            'id'         => $band->id,
            'name'       => $band->name,
            'style'      => $band->styles,
            'country'    => $band->country,
            'summary'    => isset($info->summary) ? $info->summary : null,
            'followers'  => $followersArr,
            'createdOn'  => $band->createdOn,
            'updatedOn'  => $band->updatedOn,
            'authoredBy' => $band->authoredBy,
            'updatedBy'  => $band->updatedBy,
        ];

        $json[] = $bandObj;
    }

    return ['key' => 'bands', 'value' => $json];

0 个答案:

没有答案