php为我们提供了丰富的数组操作函数,用这些函数可以非常方便的实现我们所想实现的功能。
添加和删除数组元素
添加元素的方法
array_unshift(array array,mixed var [,mixed var...])
在数组头添加元素,所有的数值键会被相应的修改,但关联键不会受到影响
array_push(array array,mixed var [,mixed var.....])
在数组尾添加元素
删除数组元素的方法
array_shift(array array)
删除数组头元素,所有的数值键会被相应的修改,但关联键不会受到影响,并返回被删除元素的值
array_pop(array array)
删除数组尾的元素,并返回被删除元素的值
========================================================================================
key()函数返回数组当前指针所在位置的键
current()函数返回当前指针所在位置元素的值
next()将数组指针朝下一个位置移动并返回该元素的值,如果已经是最后一个位置则当再次对该数组使用这个函数将返回FALSE
prev()将数组指针朝上一个位置移动并返回该元素的值,如果到第一个位置时,再次使用prev()对该数组操作将返回FALSE
end()将数组指针移动到最后一个位置
reset() 将数组指针移动第一个位置
用这些函数,实现print_r()函数的功能
<?php //正序打印数组 function print_array_next( $arr ) { if (! is_array ( $arr )) { return false; //不是数组 } reset( $arr ); //先将数组指针归位 echo 'Array(' .key( $arr ). '=>' .current( $arr ). ' ' ; while (next( $arr )) { //next()将数组指针往下一个位置移动,如果已经是最后一个位置则返回FALSE //故可以将其作为循环条件 echo key( $arr ). '=>' .current( $arr ). ' ' ; } echo ')' ; } //逆序打印数组 function print_array_prev( $arr ) { if (! is_array ( $arr )) { return false; //不是数组 } end ( $arr ); //先将数组指针移动最后一位 echo 'Array(' .key( $arr ). '=>' .current( $arr ). ' ' ; while (prev( $arr )) { //prev()将数组指针往下一个位置移动,如果已经是第一个一个位置则返回FALSE //故可以将其作为循环条件 echo key( $arr ). '=>' .current( $arr ). ' ' ; } echo ')' ; } $arr = array ( 'a' =>1, 'b' =>2, 'c' =>3, 'd' =>4, 'e' =>5); print_array_next( $arr ); echo '<br/>' ; print_array_prev( $arr ); ?> 输出结果: Array(a=>1 b=>2 c=>3 d=>4 e=>5 ) Array(e=>5 d=>4 c=>3 b=>2 a=>1 ) |
===========================================================================================
===========================================================================================