php foreach循环是什么

PHP foreach用于遍历数组和Traversable对象,支持单变量取值和键值对获取;需注意引用修改后unset、不改变内部指针、仅支持数组及可遍历对象;多维数组可用嵌套或递归处理。

PHP foreach 是一种专为遍历数组(以及可遍历对象)设计的循环语句,不用手动管理索引,写起来简洁,读起来清楚。

它主要干两件事

• 把数组里的每个元素依次拿出来,赋值给一个变量(比如 $value
• 如果需要,还能同时拿到当前元素的键名(比如 $key),特别适合关联数组

两种基本写法

foreach ($arr as $value) { ... } —— 只取值,适合纯索引数组
foreach ($arr as $key => $value) { ... } —— 键值都取,处理用户数据、配置项等更自然

用的时候要注意这些细节

• 循环中如果用引用修改原数组(foreach ($arr as &$item)),结束后记得 unset($item),否则可能影响后续逻辑
• foreach 不会改变数组的内部指针,也不依赖它,所以不用担心 current()key() 被干扰
• 它只支持数组和实现了 Traversable 接口的对象,传个字符串或数字会报错

多维数组怎么处理

• 两层 foreach 就能搞定二维数组,外层取行,内层取字段
• 深度不确定时,用递归函数配合 is_array() 判断,一层层钻进去,直到遇到真实值
• 避免在嵌套循环里混用相同变量名(比如都叫 $row),容易串值出错

基本上就这些。不复杂,但容易忽略引用和变量残留的问题。