《PHP经典实例》笔记数组篇 - 4.24 使用生成器高效迭代处理大型数据集

4.24 使用生成器高效迭代处理大型数据集

PHP

echo '

';

/使用生成器高效迭代处理大型数据集/
function FileLineGenerator($file) {
if(!$fh = fopen($file,'r')) {
return;
}

while(false !== ($line = <a href="https://www.jb51.cc/tag/fget/" target="_blank" class="keywords">fget</a>s($fh))) {
    yield $line;
}

fclose($fh);

}

$file = FileLineGenerator('str.txt');
foreach($file as $line) {
if(preg_match('/^Color:/',$line)) echo $line;
}
/
Color:Red
Color:White
Color:Blue
/

/**/

/循环处理一个文件,并且打印文件随机一行/
$line_number = 0;
foreach(FileLineGenerator('str.txt') as $line) {
$line_number++;
if(mt_rand(0,$line_number - 1) == 0) {
$selected = $line;
}
}

echo $selected;

/***/

function ArrGenerator($arr) {
$i = 0;
while($i < count($arr)) {
yield $arr[$i];
$i++;
}
}

$arr = ['Color:Red','Color:White','Color:Blue','Beijing','Shanghai','Jiujiang'];
$arr = ArrGenerator($arr);
foreach($arr as $val) {
if(preg_match('/^Color:/',$val)) echo $val,PHP_EOL;
}
/
Color:Red
Color:White
Color:Blue
/

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...