【发布时间】:2022-04-04 05:10:52
【问题描述】:
我需要一些帮助和说明如何正确完成这一切,因为看起来我做错了而且不是最佳方式,所以它浪费了我的服务器资源。
这是我的代码,它有效,但我认为如果将 foreach 放在 while 循环内,而不是像这样包装它,它可以优化以获得更快的性能:
$link_id = explode(',', $ref_links_id);
foreach($link_id as $key => $value){
$additional_links_query = 'SELECT * FROM additional_links WHERE id = '.$value.' ORDER BY ID asc';
$res = $db->prepare($additional_links_query);
$res->execute();
while ($info = $res -> fetch()){
$li_text = ($info['_ad_text'] == NULL)? '' : ' - '.$info['_ad_text'];
$li_target = ($info['_ad_url_target'] == NULL)? '' : ' target="'.$info['_ad_url_target'].'"' ;
$li_nofollow = ($info['_ad_nofollow'] == 1)? ' rel="nofollow"' : '';
$li_cont = '<li><a href="'.$info['_ad_url'].'"'.$li_target.$li_nofollow.'>'.$info['_ad_anchor'].'</a>'.$li_text.'</li>';
print<<<END
$li_cont\n
END;
}
}
我最初的方法是将foreach 循环放在while 循环内,这样可以节省回合,但我的每一次尝试都失败了。
【问题讨论】:
标签: php foreach while-loop