[PHP从小白到大牛]-017 PHP数组遍历

771 阅读1分钟

1.遍历数组(有降维的作用)

通过for循环来遍历

<?php


$arr = ['one'=>1,'two'=>2,3,4,5,6];


for($i = 0;$i<count($arr);$i++){
	echo $arr[$i];
	echo "<br>";
}
  • 只能遍历下标连续的索引数组

通过foreach遍历数组

<?php


$arr = ['one'=>1,'two'=>2,3,4,5,6];


foreach ($arr as $key => $value) {
	echo $key.' ===> '.$value;
	echo "<br>";
}
  • foreach函数很强大, 数组的值, 无论任何类型, 都可以遍历

  • 只要键值

    • foreach($数组名称 as $val){循环体}
  • 既要键名又要键值

    • foreach($数组名称 as $key=>$val){循环体}
  • 注意

    • 可以通过:endforeach代替{}

通过指针函数遍历数组

  • key() => 得到当前指针所在位置的键名, 如果不存在, 返回null
  • current() => 得到当前指针所在位置的键值, 如果不存在, 返回false
  • next() => 将数组的指针向下移动一位, 并且返回当前指针所在位置的键值, 如果没有, false
  • prev() => 将数组的指针向上移动一位, 并且返回当前指针所在位置的键值, 如果没有, false
  • reset() => 将数组指针移动到数组开始, 返回当前位置的键值, 如果没有, false
  • end() => 将数组指针移动到数组最后, 返回当前位置的键值, 如果没有, false
foreach($arr as $key => $value){
	echo $key." =====> ".$value;
	echo "<br>";
}

while (!is_null(key($arr))) {
	echo key($arr)." =====> ".current($arr);
	echo "<br>";
	next($arr);
}
获取后缀名
$str = "1.txt.php";

$arr = explode('.', $str);

echo end($arr);

通过each()和list()函数遍历数组

  • each(): 得到当前指针所在位置的键值对, 返回的是一个数组, 包含4个部分

  • list(): 把数组中的值, 赋值给多个变量, 前提是该数组是下标连续的索引数组
while($tmp = each($arr)){
	echo $tmp['key']." ====> ".$tmp['value'];
	echo "<br>";
}