0

如何减少代码中的循环数。当前代码是一个虚拟示例,但是由于我正在从 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 项目在下面,让我知道如何解决这个问题以最小化循环。

编辑

与此同时,我检查了缓存,但作为一个菜鸟,我不太确定在我的情况下它是否是一种真正的缓存方法。

4

0 回答 0