日常开发过程中,接触最多的莫过于是数组了,但是数组的操作我们一般都是用来做读写的,很少操作到有关游标(指针),但是再实际的时用中,如果利用了游标,我们的开发速度及效率会大大的提高。

PHP中有关数组指针的函数

移动指针的函数

next

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

mixed next ( array &$array )

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

prev

将数组的内部指针倒回一位

mixed prev ( array &$array )

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

reset

将数组的内部指针指向第一个单元

mixed reset ( array &$array )

返回数组第一个单元的值,如果数组为空则返回 FALSE。

end

将数组的内部指针指向最后一个单元

mixed end ( array &$array )

返回最后一个元素的值,或者如果是空数组则返回 FALSE。

获取当前指针信息的函数

key

从关联数组中取得键名

mixed key ( array $array )

返回数组中当前单元的键名

key() 函数返回数组中内部指针指向的当前单元的键名。

但它不会移动指针。

如果内部指针超过了元素列表尾部,或者数组是空的,key() 会返回 NULL。

current (pos)

返回数组中的当前单元

mixed current ( array &$array )

current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针。

如果内部指针指向超出了单元列表的末端,current() 返回 FALSE。

其他和指针相关的函数

each

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

array each ( array &$array )

返回 array 数组中当前指针位置的键/值对并向前移动数组指针。

键值对被返回为四个单元的数组,键名为0,1,key和 value。

单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。

list

把数组中的值赋给一组变量

array list ( mixed $var1 [, mixed $... ] )

extract

从数组中将变量导入到当前的符号表

int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )

返回成功导入到符号表中的变量数目。

compact

建立一个数组,包括变量名和它们的值

array compact ( mixed $varname1 [, mixed $... ] )

返回输出的数组,包含了添加的所有变量。

常用举例

$foo = array("Robert" => "Bob", "Seppo" => "Sepi");

$bar = each($foo);

print_r($bar);

echo '



';

// ------------------------------------------

$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);

while (list($key, $val) = each($fruit)) {

echo "$key => $val" . '
';

}

echo '



';

// ------------------------------------------

$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');

$foo[1] = 'd';

list($x, $y, $z) = $foo;

var_dump($foo, $x, $y, $z);

echo '



';

// ------------------------------------------

$size = "large";

$var_array = array("color" => "blue",

"size" => "medium",

"shape" => "sphere");

extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size";

echo '



';

// ------------------------------------------

$city = "San Francisco";

$state = "CA";

$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);

print_r($result);

参考资料

php 数组 指针,PHP数组指针操作相关推荐

  1. C Primer Plus 第10章 数组和指针 10.5 指针操作

    2019独角兽企业重金招聘Python工程师标准>>> C提供了6种基本的指针操作,下面的程序将具体演示这些操作.为了显示每一个操作的结果,程序将打印出指针的值(即指针指向的地址). ...

  2. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

  3. 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )

    文章目录 前言 一.数组符号 [] 与 指针 * 符号 使用效果 基本等价 二.数组首地址 与 指针 本质区别 前言 参考 [C 语言]指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方 ...

  4. php中数组的指针函数参数传递参数,循环语句、函数的参数及作用域、数组键值及指针操作函数(8月23日作业)...

    实例演示while(),do~while() 实例 /** * while循环 */ $num = 1; $sum = 0; while ($num <= 100) { $sum +=$num; ...

  5. 细说PHP笔记03(第7章)--数组与数据结构,数组定义,数组遍历,数组内部指针遍历,键值操作函数,统计数组函数,回调函数处理数组元素,数组排序,拆分、合并、分解、结合数组,数组实现堆栈,随机选取元素

    1.数组 索引数组:索引值是整数 关联数组:索引值是字符串 2.数组的定义 1.以直接赋值的方式声明 $数组名[下标]=资料内容 或 $数组名[关联字符串(键值)]=资料内容 <?php $va ...

  6. 数据结构与算法:动态数组(利用万能指针实现任意类型数组操作)

    原理介绍 我们利用万能指针来实现动态数组,数组元素类型可以是任意类型,因为我们只维护用户提供的数据的地址,所以可以用万能指针来接受,这样就实现了类似C++中的模板功能了. 先说说动态数组和静态数组.静 ...

  7. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

  8. Go 学习笔记(13)— 指针定义、指针特点、空指针、指针数组、指向指针的指针、指针作为函数入参

    1. 复合数据类型 Go 语言基本的复合数据类型有指针.数组.切片.字典.通道.结构和接口等.格式如下: * pointerType // 指针类型, [n]elementType // 数组类型, ...

  9. c++ char数组初始化_c专题指针数组与指针的关联

    ----在今天开始写文章之前,让我不由的想起高中里面学的一篇文章中一段话语,是荀子写的<劝学>:积土成山,风雨兴焉:积水成渊,蛟龙生焉:积善成德,而神明自得,圣心备焉.故不积跬步,无以至千 ...

最新文章

  1. 自行编译Vim for Windows,加入Python支持!
  2. python银行排队系统_socket实现银行排队系统
  3. jQuery 获取屏幕高度、宽度
  4. 分布式系统原理 之5 日志技术
  5. MySQL各个版本区别
  6. 付款更方便了?腾讯接入!微信支持数字人民币支付
  7. 关于STM32系列单片机中断触发时间问题
  8. 直接拿来用!超实用的Java数组技巧攻略
  9. 获取当前user的Session状态
  10. 公司居然使用监听设备,大家来讨论下IT公司应该怎样管理
  11. 海云捷迅让OpenStack从项目实施转为服务交付
  12. 台式计算机模拟软件,仿真软件 计算机仿真模拟常用软件有那些?
  13. STL之容器——介绍
  14. python进程池apply与apply_async的区别
  15. 中国知网论文查重算法和修改攻略
  16. 网站徽章shields制作教程
  17. 保姆级教程:群晖nas内网穿透之ipv6/ipv4 ddns+frp双管齐下!
  18. 大恒相机开发问题(错误码: -8)无法打开相机
  19. 算法工程 # 深度学习算法落地最后一公里:工业界中的大规模向量检索
  20. UWA学堂上新:如何绕过Unity打造自己的HUD UI系统

热门文章

  1. Python3网络爬虫:使用Beautiful Soup爬取小说
  2. 改变el-table表头的背景颜色以及表格隔行变色
  3. 给XLua生成Unity Api的EmmyLua代码提示
  4. 南充计算机实验小学,南充小学排名前十名榜单,2021年南充所有的小学实力排名...
  5. PDF及普通图片文件上传生成缩略图
  6. C语言系统函数Sqrt的实现[输入字符串]
  7. Layui 弹窗 -全面使用
  8. MAVEN生命周期、阶段、插件、目标详解
  9. vue 跳转到本地的html文件预览pdf
  10. matlab activex下载安装,Matlab 2020b介绍及下载安装步骤