0

こんにちは、次の機能があります。

public function getpopularAction()
{
    $businessReviewMapper = new Application_Model_Mapper_BusinessReviewsMapper();
    $result = $businessReviewMapper->getTotalPopular();

    for ($i = 0; $i < count($result); $i++)
    {
        $rotd[$i] = $businessReviewMapper->getROTD($result[$i]['review_id']);     

        for ($j = 0; $j < count($rotd); $j++)
        {
            $rotd[$j]['u_img'] = $this->view->getLoginUserImage(
                $rotd[$j]['social_id'], $rotd[$j]['login_type'], null, null, large
            );
        }
     }

     print_r($rotd); 
     exit;
}

私が得る結果は次のとおりです。

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [review_id] => 161
                    [review_desc] => tgi goooood....................
                    [user_id] => 2
                    [rating] => 3
                    [review_date] => 20121022203529
                    [name] => zlippr
                    [social_id] => 12345678
                    [login_type] => facebook
                    [user_unique_name] => zlippr
                    [city] => Kuala Lumpur
                    [business_name] => TGI Friday Kuala Lumpur
                )

            [u_img] => /public/images/image_not_found.png
        )
)

どこに問題があるのか​​ わかりませんが、u_imgが正しく取得されず、配列ループが正しく実行されているかどうかわかりません。

4

2 に答える 2

0

出力を見ると、結果は配列の2番目のレイヤー内にあります。つまり、変数を次のgetLoginUserImage場所から置き換える必要があります。

$rotd[$i]['social_id'],$rotd[$i]['login_type'] 

$rotd[$i][0]['social_id'],$rotd[$i][0]['login_type']
于 2012-10-24T08:15:16.180 に答える
0

内側のループの目的がわからない。各 rotd に対応する loginuserimage を取得しようとしている場合は、次のようにする必要があります。

    for ($i = 0; $i < count($result); $i++)
    {
       $rotd[$i] = $businessReviewMapper->getROTD($result[$i]['review_id']);     

       $rotd[$i]['u_img'] = $this->view->getLoginUserImage(
            $rotd[$i]['social_id'],$rotd[$i]['login_type'],null,null,large);
    }
于 2012-10-24T08:06:37.727 に答える