php中foreach遍历数组的两种方式

PHP中foreach遍历数组有两类语法:一是foreach($array as $value)仅获取值,适用于无需键名的场景;二是foreach($array as $key => $value)同时获取键与值,适用于需键名判断或处理关联数组的情形。

PHP 中 foreach 遍历数组主要有两种语法形式:一种只取值,另一种同时取键和值。

只获取数组元素的值

适用于不需要知道当前元素下标(键名)的场景,比如简单输出、累加、过滤等。

  • 语法:foreach ($array as $value) { ... }
  • $value 每次循环接收当前元素的值,键名被忽略
  • 原数组不会被修改,$value 是副本;如需修改原数组,得用引用 &$value

同时获取键名和值

当需要根据键做判断、构建新结构、或处理关联数组时必须用这种方式。

  • 语法:foreach ($array as $key => $value) { ... }
  • $key 是当前元素的键(数字索引或字符串键名),$value 是对应值
  • $value 使用引用(&$value)可直接修改原数组对应位置的值

注意事项

遍历过程中修改数组(如增加、删除元素)可能导致未定义行为,不建议边遍历边改结构;如需筛选,优先用 array_filter() 等函数预处理。

基本上就这些。两种写法本质一致,选哪个取决于你是否关心键名。