PHP面试题3次握手的请求头 php面试题( 二 )


二 , 数组的分段和填充
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...); 将数组中的每个元素应用到 用户自定义函数 。在函数中 , 数组的键名和键值是参数 。可以通过把用户自定义函数的第一个参数指定为引用:$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. 数组的合并
array_merge(array1,array2,array3...); 用于把一个或多个数组合并成一个数组 。如果两个或更多个数组有相同的键名 。则最后的数组会覆盖其他数组 。如果向函数输入了一个数组 , 且键名是整数 , 则该函数会返回带有整数键名的新数组 , 其键名以0开始进行重新索引 。
array_merge_recursive(array1,array2,array3...); 用于把一个或多个数组合并为一个数组 , 该函数与array_merge()函数之间的不同是在处理两个或多个数组元素有相同的键名的情况下 , array_merge_recursive()不会进行键名覆盖 , 而是将多个相同键名的值递归组成一个数组 。如果您仅仅向 array_merge_recursive() 函数输入一个数组 , 结果与 array_merge() 相同 。
3. 数组的差集
array_diff(array1,array2,array3...); 函数用于比较两个(或更多个)数组的值 , 并返回差集 。该函数比较两个(或更多个)数组的值(key=value中的value),并返回一个差集数组 , 该数组包括了所有在被比较的数组(array1)中 , 但是不在任何其他参数数组(array2或array3等等)中的值 。
array_diff_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值 , 并返回差集 。该函数比较两个(或更多个)数组的键名和键值 , 并返回一个差集数组 , 该数组包括了所有在被比较的数组(array1)中 , 但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值 。
4. 数组的并集
array_intersect(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键值 , 并返回交集 。该函数比较两个(或更多个)数组的键值 , 返回一个交集数组 , 该数组包括了所有在被比较的数组(array1)中 , 同时也在任何其他参数数组(array2 或 array3 等等)中的键值 。

秒懂生活扩展阅读