2011-04-07 48 views
0

我使用此代碼來獲取好友信息進行排序打印的assosiative陣列的關鍵

<?php 
$fql = "SELECT uid, name, pic_square FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) "; 

$fUIDS = $facebook->api(array(
'method' => 'fql.query', 
'query' =>$fql, 
)); 
print_r($response); 
?> 

現在我需要表現出這樣

echo '<img src="'.$response['pic_square'].'"/>'; 

的結果,但它沒有工作,所以我這樣做

$fql = "SELECT pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) "; 
$fPics = $facebook->api(array(
'method' => 'fql.query', 
'query' =>$fql, 
)); 

$i=count($fPics); 
echo 'Total '.$i.' entries found !<br/>'; // this lines shows 10 as expected :) 
for ($x=0;$x<$i;$x++) 
echo '<img src="'.$fPIcs[$x].'"/>'; 

現在它顯示Array10倍,有什麼問題?

回答

2

當PHP打印Array時,這意味着它試圖將數組變成一個字符串。

$fPics很可能是一個數組的數組,而不是一個字符串數組。

嘗試撥打print_r($fPics),我敢打賭你會看到每個元素實際上都是一個單一的鍵,pic_square和一個值 - 圖像的URL,這是你想要的。

如果是這樣,這意味着你的循環可以改成引用數組元素:

foreach($fPics as $row) { 
    echo '<img src="', htmlspecialchars($row['pic_square']), '">'; 
} 
+0

是的,它的工作,thnx! – Sourav 2011-04-07 05:57:36

0

可能它的原因,多數民衆贊成是多維數組。 要確保使用以下方法: print_r,var_dump()或var_export()

Theres顯示您的變量組成。