php实现遍历
遍历数组
PHP中遍历数组有多种方法,最常用的是foreach循环。适用于索引数组和关联数组。
$array = [1, 2, 3, 4];
foreach ($array as $value) {
echo $value;
}
$assocArray = ['a' => 1, 'b' => 2];
foreach ($assocArray as $key => $value) {
echo "$key: $value";
}
使用for循环遍历索引数组
对于索引数组,可以使用for循环配合count()函数。

$array = [1, 2, 3, 4];
for ($i = 0; $i < count($array); $i++) {
echo $array[$i];
}
使用while循环遍历
while循环配合each()和list()函数可以遍历数组,但PHP 7.2+已弃用each()。
$array = [1, 2, 3, 4];
reset($array);
while (list($key, $value) = each($array)) {
echo "$key: $value";
}
使用array_walk函数
array_walk()允许对数组每个元素应用自定义函数。

$array = [1, 2, 3, 4];
array_walk($array, function($value, $key) {
echo "$key: $value";
});
遍历对象
实现Iterator接口或使用foreach遍历对象属性。
class MyClass implements Iterator {
private $position = 0;
private $array = [1, 2, 3];
public function current() { return $this->array[$this->position]; }
public function key() { return $this->position; }
public function next() { ++$this->position; }
public function rewind() { $this->position = 0; }
public function valid() { return isset($this->array[$this->position]); }
}
$obj = new MyClass();
foreach ($obj as $key => $value) {
echo "$key: $value";
}
遍历目录
scandir()和DirectoryIterator可用于遍历目录。
foreach (scandir('/path') as $file) {
if ($file !== '.' && $file !== '..') {
echo $file;
}
}
$dir = new DirectoryIterator('/path');
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
echo $fileinfo->getFilename();
}
}






