本文目录一览:
php开发中如何实现无限遍历目录
$tree = '';
do {
$tree .= '/*';
$files = glob(__DIR__ . $tree);
if ($files) {
foreach ($files as $file) {
if (
pathinfo($file, PATHINFO_EXTENSION) == 'php'
and ! in_array(substr(pathinfo($file, PATHINFO_BASENAME), 0, 1), ['.', '_'])
) {
require $file;
}
}
unset($file);
}
} while (isset($files) and $files);
unset($tree, $files);
这是我随便写的一个示例,无限遍历当前目录的,你可以参考一下。
php数组遍历类与用法示例
本文实例讲述了php数组遍历类与用法。分享给大家供大家参考,具体如下:
class scanArray {
public $arr;
public $where;
private $str;
public function scan($arr, $where = "array") {
$this->arr = $arr;
$this->where = $where;
foreach ($this->arr as $k => $v) {
if (is_array($v)) {
$this->where = ($this->where) . "[{$k}]";
$this->scan($v, $this->where);
} else {
$this->str .= $this->where . "[{$k}]=" . $v . '<br/>';
}
}
return $this->str;
}
function __destruct() {
unset($this->arr);
unset($this->where);
}
}
$a = array('g' => 'a', 'vv' => array("b" => "b", "l" => "c", "xx" => array("e", "g")));
$ah = new scanArray();
$b = $ah->scan($a);
echo $b;
运行结果:
array[g]=a
array[vv][b]=b
array[vv][l]=c
array[vv][xx][0]=e
array[vv][xx][1]=g
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
PHP遍历数组的方法汇总PHP数组遍历方法大全(foreach,list,each)PHP数组遍历foreach语法结构及实例PHP中多维数组的foreach遍历示例php实现遍历多维数组的方法PHP中使用foreach()遍历二维数组的简单实例PHP遍历数组的三种方法及效率对比分析PHP实现的操作数组类库定义与用法示例PHP数组操作类实例PHP数组生成XML格式数据的封装类实例
php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:
/**
* 遍历目录
* @param string $dir 绝对/相对路径
* @param string $filter 默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件
* @param const $patten 默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册
* @param string/bool $nocache 防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值
* @return array
*/
function globdir($dir, $filter = '*', $patten = GLOB_BRACE, $nocache = null) {
static $file_arr = array();
isset($nocache) && $file_arr = array();
if (!is_dir($dir)) return;
if ($patten == GLOB_ONLYDIR) {
$code = 'if (is_dir($file)) {$file_arr[] = $file;globdir($file, "*", GLOB_ONLYDIR);}';
} else {
$code = 'is_file($file) ? $file_arr[] = $file : globdir($file,"' . $filter . '",' . $patten . ');';
}
array_walk(glob("{$dir}/{$filter}", $patten), create_function('$file, $k, $file_arr', $code), $file_arr);
if ($filter != '*') {
array_walk(glob("{$dir}/*", GLOB_ONLYDIR), create_function('$dir,$k,$param', 'list($filter, $patten) = explode("|", $param);globdir($dir, $filter, $patten);'), "{$filter}|{$patten}");
}
return $file_arr;
}