【问题标题】:facebook fql result to json_encode arrayfacebook fql 结果到 json_encode 数组
【发布时间】:2011-07-02 12:54:05
【问题描述】:

这里是新手,我下面的代码使用 json_encode 输出像这样的[{"src":"http","src":"http"},{"src":"http","src":"http"}]。但是我的要求是这样的[["http","http"],["http","http"]]

//to get album cover
        $fql2    =   "select  src from photo where pid = '" . $values['cover_pid'] . "'";
        $param2  =   array(
         'method'    => 'fql.query',
         'query'     => $fql2,
         'callback'  => ''
        );

        $fqlResult2   =   $facebook->api($param2);
        $jsarr  =   array();
        foreach( $fqlResult2 as $keys2 => $values2){
        }
        if ($values['name'] != 'Profile Pictures'){
            $jsarr['src'] = $album['src'];

                $count += 1;

        if ($count == 1){
        echo "[";}
        else {
        echo ",";}
        echo json_encode($values2);
        }
    }
    echo "]";
}
?>

我的 json_encode 输出是这样的

[{"src":"http:\/\/photos-c.ak.fbcdn.net\/hphotos-ak-snc6\/251383_221168744573533_221167777906963_849177_3220954_s.jpg"},{"src":"http:\/\/photos-d.ak.fbcdn.net\/hphotos-ak-ash4\/248958_221168431240231_221167777906963_849167_3802855_s.jpg"}]

这种方式怎么输出

[["http:\/\/photos-c.ak.fbcdn.net\/hphotos-ak-snc6\/251383_221168744573533_221167777906963_849177_3220954_s.jpg"],["http:\/\/photos-d.ak.fbcdn.net\/hphotos-ak-ash4\/248958_221168431240231_221167777906963_849167_3802855_s.jpg"]]

【问题讨论】:

    标签: php arrays facebook-fql json


    【解决方案1】:

    一种简单的方法是将json_encode 结果保存到变量中,然后将str_replace 保存到{} 字符。

    所以你的代码会变成:

    //to get album cover
        $fql2    =   "select  src from photo where pid = '" . $values['cover_pid'] . "'";
        $param2  =   array(
         'method'    => 'fql.query',
         'query'     => $fql2,
         'callback'  => ''
        );
    
        $fqlResult2   =   $facebook->api($param2);
        $jsarr  =   array();
        foreach( $fqlResult2 as $keys2 => $values2){
        }
        if ($values['name'] != 'Profile Pictures'){
            $jsarr['src'] = $album['src'];
    
                $count += 1;
    
        if ($count == 1){
        $outputStr .= "[";}
        else {
        $outputStr .= ",";}
        $outputStr .= json_encode($values2);
        }
    }
    $outputStr .= "]";
    $outputStr = str_replace("{","[",$outputStr);
    $outputStr = str_replace("}","]",$outputStr);
    echo $outputStr;
    }
    ?>
    

    【讨论】:

    • 请注意,您可能希望在第一次使用之前将$outputStr$outputStr = ""; 实例化(作为干净编码的一部分)。我没有在上面那样做,因为我不完全确定在这之前是什么代码(因为你也有可能想在其中使用$outputStr)。
    猜你喜欢
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    • 1970-01-01
    • 2023-03-24
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多