2011-04-07 42 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显示您的变量组成。