微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

《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
/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐