Печать ассоциативного массива, отсортированного по ключу - PullRequest
0 голосов
/ 07 апреля 2011

Я использую этот код для получения информации о друзьях

<?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].'"/>';

теперь он показывает Array 10 раз , что не так?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

Когда PHP печатает Array, это означает, что он пытался превратить массив в строку.

Весьма вероятно, что $fPics - это массив массивов, а не массив строк.

Попробуйте позвонить print_r($fPics), держу пари, что вы увидите, что каждый элемент на самом деле является массивом с одним ключом, pic_square, и единственным значением - URL-адресом изображения, которое вам и нужно.

Если это так, это означает, что ваш цикл может быть изменен для ссылки на этот элемент массива:

foreach($fPics as $row) {
    echo '<img src="', htmlspecialchars($row['pic_square']), '">';
}
0 голосов
/ 07 апреля 2011

возможно, причина в том, что это многомерный массив. Чтобы убедиться, используйте следующие методы: print_r, var_dump () или var_export ()

Theres показывают, что ваша переменная состоит из.

...