2

我有一个问题:我使用以下查询从数据库中获取我的数组:

$news = $db->QueryFetchArrayAll("SELECT login,id FROM `users` ORDER BY id DESC LIMIT 9");

$imgs = $db->QueryFetchArrayAll("SELECT usrpic,id FROM `users` ORDER BY id DESC LIMIT 9");

现在我需要$news['login']一个$imgs['usrpic']用于每个循环。

例如:

foreach($news as $new, $imgs as $img){
    <img style="border: 1px solid #8C0E0E;"src="'.$img['usrpic'].'" width="20" height="20" border="0" />
    <img style="border: 1px solid #8C0E0E;"src="'.$new['login'].'" width="20" height="20" border="0" />
}

谁能帮助我如何做到这一点?

4

2 回答 2

0

您可以使用next()函数: http: //php.net/manual/en/function.next.php
但不要忘记确保 news 和 img 具有相同的大小:

if(count($news) == count($imgs)) {
    foreach($news as $new) {
        $img = next($imgs);
        <img style="border: 1px solid #8C0E0E;"src="'.$img['usrpic'].'" width="20" height="20" border="0" />
        <img style="border: 1px solid #8C0E0E;"src="'.$new['login'].'" width="20" height="20" border="0" />
    }
}
于 2015-05-16T20:43:04.280 回答
0

如果这些是您的实际查询,您应该将它们合并为一个:

$users = $db->QueryFetchArrayAll("SELECT id, login, usrpic FROM `users` ORDER BY id DESC LIMIT 9");

然后迭代结果数组并输出图像:

foreach ($users as $user) {
    echo "<img src='{$user['usrpic']}' ... />";
    echo "<img src='{$user['login']}' ... />";
}

否则(保留您的原始查询),您应该确保$news$imgs具有相同的长度,然后迭代其中一个:

$size = count($imgs);
for ($i = 0; $i < $size; $i++) {
    $img = $imgs[$i];
    $new = $news[$i];
    echo "<img src='{$img['usrpic']}' ... />";
    echo "<img src='{$new['login']}' ... />";
}
于 2015-05-16T22:49:42.223 回答