好的,阵列是我的弱点,我正在努力解决这个问题。它可能也很简单。基本上,我有一个
的数组代码:
Array
(
[data] => Array
(
[0] => Array
(
[name] => getalbum
[fql_result_set] => Array
(
[0] => Array
(
[aid] => 187046464639937_101906
[name] => photo tab
[cover_pid] => 187046464639937_1661168
)
[1] => Array
(
[aid] => 187046464639937_99627
[name] => Cover Photos
[cover_pid] => 187046464639937_1661054
)
)
)
[1] => Array
(
[name] => getcover
[fql_result_set] => Array
(
[0] => Array
(
[src] => http://photos-g.ak.fbcdn.net/hphotos-ak-prn1/526499_403098366368078_187046464639937_1661168_217706037_s.jpg
)
[1] => Array
(
[src] => http://photos-b.ak.fbcdn.net/hphotos-ak-ash3/562470_403049039706344_187046464639937_1661054_361917190_s.jpg
)
)
)
)
)
我正在使用foreach来调用数组 PHP代码:
foreach($fql_query_obj['data'] as $albums){
foreach($albums['fql_result_set'] as $album){
//print_r($album);
if ( ($album['name'] != "Wall Photos")
&& ($album['name'] != "Cover Photos")
&& ($album['name'] != "photo tab"))
{
echo $album['name'].' :: '.$album['aid'];
echo '<img src="'.$album['src'].'" /><br />';
}
}
}
现在它似乎通过了getalbum数组,然后是getcover。我该怎么做才能将它们合并在一起呢?
答案 0 :(得分:0)
如何获取数据,某种数据库?也许你可以在获取数据时合并它?
无论如何,如果您的数据总是以这种方式排序(匹配数组,第一部分数据,第二部分数据),那么这样的事情呢?
foreach($fql_query_obj['data'][0]['fql_result_set'] as $key_album => $album){
//print_r($album);
if ( ($album['name'] != "Wall Photos")
&& ($album['name'] != "Cover Photos")
&& ($album['name'] != "photo tab"))
{
echo $album['name'].' :: '.$album['aid'];
echo '<img src="'.$fql_query_obj['data'][1]['fql_result_set'][$key_album]['src'].'" /><br />';
}
}
答案 1 :(得分:0)
您似乎正在尝试迭代查询(getalbum
和getcover
)。相反,您可能希望迭代相册并将封面和专辑数据视为统一的内容。我会尝试重构数据以便更容易使用:
list($albumsQuery, $coversQuery) = $fql_query_obj['data'];
$albums = array();
foreach ($albumsQuery['fql_result_set'] as $album) {
$albums[] = $album;
}
for ($i = 0, $numAlbums = count($albums); $i < $numAlbums; ++$i) {
$albums[$i] = array_merge($albums[$i], $coversQuery['fql_result_set'][$i]);
}
foreach ($albums as $album) {
// Here, $album contains data from both arrays
}
请注意,这假设没有冲突的密钥(示例数据中没有),还有很多其他方法可以执行此操作。