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

前端之家收集整理的这篇文章主要介绍了《PHP经典实例》笔记数组篇 - 4.24 使用生成器高效迭代处理大型数据集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

PHP

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
/

猜你在找的程序笔记相关文章