您的位置:

php中关于数组中指针的操作,php数组操作函数

本文目录一览:

在php中哪些是数组指针操作函数

current():取得目前指针位置的内容资料。

key():读取目前指针所指向资料的索引值(键值)。

next():将数组中的内部指针移动到下一个单元。

prev():将数组的内部指针倒回一位。

end():将数组的内部指针指向最后一个元素。

reset():将目前指针无条件移至第一个索引位置。

将数组中的内部指针向前移动一位?

next

(PHP 4, PHP 5, PHP 7)

next — 将数组中的内部指针向前移动一位

说明

next ( array $array ) : mixed

next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位。这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位。

参数

array

受影响的 array 。

返回值

返回数组内部指针指向的下一个单元的值,或当没有更多单元时返回 false。

警告

此函数可能返回布尔值 false,但也可能返回等同于 false 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。

范例

示例 #1 next() 及相关函数的用法示例

注释

注意: 你将无法区别包含数组尾以及 boolean false 单元的数组。要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数。

参见

current() - 返回数组中的当前单元

end() - 将数组的内部指针指向最后一个单元

prev() - 将数组的内部指针倒回一位

reset() - 将数组的内部指针指向第一个单元

each() - 返回数组中当前的键/值对并将数组指针向前移动一步

PHP-Array函数简介-数组操作-php实例教程

count()计算数组中的元素数目或对象中的属性个数。3current()返回数组中的当前元素。3each()返回数组中当前的键/值对并将数组指针向前移动一步。3end()将数组的内部指针指向最后一个元素。3extract()从数组中将变量导入到当前的符号表。3in_array()检查数组中是否存在指定的值。4key()从关联数组中取得键名。3krsort()对数组按照键名逆向排序。3ksort()对数组按照键名排序。3list()把数组中的值赋给一些变量。3natcasesort()用“自然排序”算法对数组进行不区分大小写字母的排序。4natsort()用“自然排序”算法对数组排序。4next()将数组中的内部指针向前移动一位。3pos()current()

的别名。3prev()将数组的内部指针倒回一位。3range()建立一个包含指定范围的元素的数组。3reset()将数组的内部指针指向第一个元素。3rsort()对数组逆向排序。3shuffle()把数组中的元素按随机顺序重新排列。3sizeof()count()

的别名。3sort()对数组排序。3uasort()使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。3uksort()使用用户自定义的比较函数对数组中的键名进行排序。3usort()使用用户自定义的比较函数对数组中的值进行排序。3

php如何移动数组内部指针

PHP 的数组指针操作函数:

pos()

end()

prev()

next()

each()

reset()

current()

php数组指针如何移动到指定单元

PHP 的foreach() 操作原始数组的一个拷贝,如果需要移动指针,使用 while 结构加上 each() 来实现。

示例:

$arr = array ('a', 'b', 'c', 'd', 'e');reset($arr);while (list($k, $v) = each($arr)) { # 当前指针已经被指向了下一位 $curr = current($arr); echo "{$k} = {$v} -- {$curr}\n";}

PHP面试题2--常用的数组函数

一,数组操作的基本函数

1. 数组的键名与值

    array_values($arr);  获得数组的值

    array_keys($arr); 获得数组的键名

    array_flip($arr); 数组的值与键名互换(如果有重复前面的会被后面的覆盖)

    in_array("apple",$arr); 在数组中检索apple

    array_search("apple",$arr); 在数组中检索apple,如果存在返回键名

    array_key_exists("apple",$arr); 检索给定的键名是否存在数组中

    isset($arr["apple"]); 检索给定的键名是否存在数组中

    array_unique() 删除数组中的重复值

2. 数组的内部指针

    current($arr); 返回数组中的当前单元

    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...); 将数组中的每个元素应用到 用户自定义函数。在函数中,数组的键名和键值是参数。可以通过把用户自定义函数的第一个参数指定为引用:$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 等等)中的键值。

array_intersect_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值,并返回交集。该函数比较两个(或更多个)数组的键名和键值,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。

七,数值的排序

array_multisort():  对多个数组或多维数组进行排序

sort(): 以升序对数组排序

rsort(): 以降序对数组排序

asort(): 根据值,以升序对关联数组进行排序

ksort(): 根据键,以升序对关联数组进行排序

arsort(): 根据值,以降序对关联数组进行排序

krsort(): 根据键,以降序对关联数组进行排序

资料参考: