加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

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

发布时间:2020-12-15 00:44:04 所属栏目:C语言 来源:网络整理
导读:4.24 使用生成器高效迭代处理大型数据集 echo ' '; / 使用生成器高效迭代处理大型数据集 / function FileLineGenerator($file) { if(!$fh = fopen($file,'r')) { return; } while(false !== ($line = fgets($fh))) { yield $line;}fclose($fh); } $file = Fi

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

echo '
';

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

while(false !== ($line = fgets($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
/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读