gpt4 book ai didi

PHP RecursiveIteratorIterator - 反向计算结果

转载 作者:行者123 更新时间:2023-12-03 23:59:09 25 4
gpt4 key购买 nike

我有以下:

<?php

$path = '/home/user/test';

$dir = new RecursiveDirectoryIterator( $path );
$iterator = new RecursiveIteratorIterator( $dir );
$dir_iterator = new RegexIterator( $iterator, '/^.+\.php/i', RecursiveRegexIterator::GET_MATCH );

?>

到目前为止一切顺利,但我需要反转结果,以存档与 array_reverse() 相同的效果

我试过这样,没有成功:

<?php

$dir_iterator = array_reverse( (array)$dir_iterator );

?>

另外,我怎样才能获得返回的结果数?我试过了,但没有用:

<?php

$total_results = count( $dir_iterator );

?>

谁能帮帮我?

非常感谢!

最佳答案

你需要的是iterator_to_array你可以试试

$dir_iterator =  array_reverse(iterator_to_array($dir_iterator ));

要计算迭代器,您需要的是:

$total_results = iterator_count( $dir_iterator );

更好的实现你的

$dir_iterator = new ReverseIterator($dir_iterator);

foreach ( $dir_iterator as $file ) {
// do your thing
}

// To get total
echo count($dir_iterator);

使用的类

class ReverseIterator extends ArrayIterator implements Countable {
private $t;

public function __construct(Iterator $it) {
$r = array_reverse(iterator_to_array($it));
$this->t = count($r);
parent::__construct($r);
unset($r);
}

function count() {
return $this->t;
}
}

关于PHP RecursiveIteratorIterator - 反向计算结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15055184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com