php面试问到数据结构 php数据库面试题( 三 )


pos($arr); 返回数组中的当前单元
key($arr); 返回数组中的当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr);将数组中的内部指针指向最后一单元
reset($arr); 将数组中的内部指针指向第一单元
each($arr); 将返回数组当前元素的一个键/值的构造数组,并使数组指针向前移动一位
list($key,$value) = each($arr); 获得数组当前元素的键名和值
3. 数组和变量之间的转换
extract(array,extract_rules,prefix); 函数从数组中将变量导入到当前符号表 。该函数使用数组键名作为变量名,使用数组键值作为变量值 。针对数组中的每个元素 , 将在当前符号表中创建对应的一个变量 。
compact(var1,var2...); 创建一个包含变量名和它们的值的数组 。任何没有变量名与之对应的字符串都被略过 。
二,数组的分段和填充
1. 数组的分段
array_slice(array,start,length,preserve); 返回数组中的选定部分 。如果数组中有字符串键名,返回的数组将保留键名 。
array_splice(array1,start,length,array2); 从数组中移除选定的元素 , 并用新元素取代它 。函数返回被移除元素的数组,如果函数没有移除任何元素(length=0),则替代数组将从start参数的位置插入 。不保留替代数组的键名 。
2. 数组的分割
array_chunk(array,size,preserve_keys); 把一个数组分割为新的数组块 。
3. 数组的填充
array_pad(array,size,value); 将指定数量的带有指定值的元素插入到数组 。如果将size参数设置为负数 , 该函数会在原始数组之前插入新的元素 。如果size参数小于原始数组的长度,该函数不会删除任何元素 。
三,数组与栈
array_push(array,value1,value2...); 向数组尾部插入一个或多个元素 。即使数组有字符串键名,添加的元素将是数字键名 。
array_pop(array); 删除数组的最后一个元素 。返回值是数组的最后一个值,即,被删除的元素值 。如果数组为空,或者不是一个数组,将返回NULL 。
四,数组和队列
array_shift(array); 用于删除数组中的第一个元素,并返回被删除的元素 。如果键名是数字,所有的元素都将获得新的键名,从0开始,并以1递增 。
array_unshift(array,value1,value2,value3...); 用于向数组插入新元素,新数组的值将被插入到数组的开头 。数值键名将从0开始,以1递增 。字符串键名将保持不变 。
五,回调函数
array_walk(array,myfunction,parameter...); 将数组中的每个元素应用到 用户自定义函数 。在函数中,数组的键名和键值是参数 。可以通过把用户自定义函数的第一个参数指定为引用php面试问到数据结构:$value,来改变数组元素的值 。
array_map(myfunction,array1,array2,array3...); 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组 。myfunction可以为null
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ); 用回调函数过滤数组中的元素 。该函数把输入数组中的每个键值传给回调函数 。如果回调函数返回true,则把输入数组中的当前键值返回给结果数组,数组键名保持不变 。
array_reduce(array,myfunction,initial); 函数发送数组中的值到用户自定义函数 , 并返回一个字符串 。如果数组是空的或者初始值未传递,该函数返回null 。initial为可选 , 规定发送到函数处理的第一个值 。
六 , 数组的计算
1. 数组元素的求和
array_sum(array); 返回数组中的所有值的和
2. 数组的合并

推荐阅读