如何减少代码中的循环数。当前代码是一个虚拟示例,但是由于我正在从 URL 中抓取内容,并且它包含大约 6K-7K li 遍历来抓取数据,因此速度是我的应用程序中的一个问题。
1)我正在使用简单的 PHP DOM 解析器从 URL 中抓取数据,所以我首先关心的是它是否是一种相关的方式来遍历 DOM 以抓取数据(大约 6K-7K li 元素)或者file_get_contents()
是否合适。
2)如何减少下面提到的代码中的循环数,我试过但失败了-
我的整个代码
<?php
$arrunsort = array('ab','ad','ar','cd','cb','sc','si','wa','za');
$prevLabel = array();
$currLabelarr = array();
$newarr = array();
foreach( $arrunsort as $sortelem )
{
$currLabel = substr($sortelem, 0, 1);
if( $currLabel !== $prevLabel )
{
//echo '<h2>',strtoupper($currLabel),'</h2>','<br>';
$currLabelarr[] = $currLabel;
$prevLabel = $currLabel;
}
}
foreach($currLabelarr as $arrkeymatch)
{
$newarr[$arrkeymatch] = array();
$i = 0;
foreach($arrunsort as $value)
{
if( $arrkeymatch == (substr($value, 0, 1)) )
{
//echo '<li>',$value,'</li>';
$newarr[$arrkeymatch][$i] = $value;
$i++;
}
}
}
foreach($newarr as $key=> $val)
{
echo "<h3>",$key,'</h3>';
echo '<ul>';
foreach($val as $myval)
{
echo '<li>',$myval, '</li>';
}
echo '</ul>';
}
现在我尝试减少循环次数-
- 注释最后一个
foreach
循环 - 取消注释
echo '<h2>',strtoupper($currLabel),'</h2>','<br>';
&echo '<li>',$value,'</li>';
但是 li 项目在下面,让我知道如何解决这个问题以最小化循环。
编辑
与此同时,我检查了缓存,但作为一个菜鸟,我不太确定在我的情况下它是否是一种真正的缓存方法。