php 数组的指针操作实现代码


Posted in PHP onFebruary 08, 2011

/**
* 将数组的内部指针倒回一位
* @param array &$arr
* @return mixed 返回前一个单元的值,当没有更多单元时返回 FALSE
* 如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE
* 要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数
*/
mixed prev(array &$arr);
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
$mode = reset($transport) ;//$mode = 'foot';
?>

array("key"=>"value");建立数组
//显示数组
print_r($array);
//使用compact()函数新建数组,并把参数做为新数组的单元;
$newArray = compact("red","green","yellow","blue","array");
//使用extract()函数把数组中的单元转换为变量
extract($exArray);
echo "$key1 $key2 $key3 $key4 $key5";

※检查值、键
array_key_exists($key,$array);//检查数组键
in_array($value,$array);//检查值于数组

※获取值
//使用array_values()取得数组的值
$carValues = array_values($car);
//取出数组的键名
$twoKeys = array_keys($two);
key($array);//输出当前单元的键名
//数组定义后,使用current()取得当前单元的值
$red = current($array);
list($red,$green) = $array;//把数组中的值赋与变量,$array = array("红色","绿色");
each($two);//返回数组中当前单元的键和值

※遍历数组
foreach($two as $subArray);//遍历数组
while(list($key,$value) = each($array)){
echo "$key=>$value,";//使用each遍历数组
}

※填充数组
//向左、右填充数组
array_pad($array,+3,"shuzhi");//2参数为正从左往右填充,数值大于单元数时才填充
$array1 = array_fill(5,5,"test");//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元
//填充数组键名
$keys = array('string', 5, 10, 'str');
$array3 = array_fill_keys($keys,"数组值");
//使用array_filp()函数交换键名与值
$speed = array_flip($speed);
//使用array_splice()函数替换第6个单元的值为7
$output = array_splice($input,6,0,7);
//使用array_splice()函数删除数组单元,只保留前5个单元
$output = array_splice($input,5);
$array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值

※排序
shuffle($array);//将数组顺序打乱
//使用array_multisort()对三个数组排序
array_multisort($sort1,$sort2,$sort3);
//把这个数组进行排序,并保持索引关系
asort($array);
//把测试数组进行逆向排序,并保持索引关系
arsort($array);
//使用ksort()对数组按键名排序
ksort($array);
//使用krsort()函数按键名逆向排序
krsort($array);
//使用sort()对测试数组进行排序[以键名排列]
sort($array);
//使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感
natsort($array);
//使用natcasesort()函数排序[自然排序]但是忽略数值大小写
natcasesort($array);
//使用array_reverse()函数排序,数组单元按相反排列
$newArray = array_reverse($array,TRUE);//TRUE设时保留原键名

※交集、差集
//使用array_diff()计算三个数组的差集[对数组数值比较]
$result = array_diff($dog1,$dog2,$dog3);
//使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]
$result = array_diff_assoc($dog1,$dog2,$dog3);
//使用array_diff_key()计算三个数组的差集[比较键名]
$result = array_diff_key($dog1,$dog2,$dog3);
//使用array_intersect()计算三个数组的交集[对数组数值比较]
$result = array_intersect($dog1,$dog2,$dog3);
//使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]
$result = array_intersect_assoc($dog1,$dog2,$dog3);
//使用array_intersect_key()计算三个数组的交集[比较键名]
$result = array_intersect_key($dog1,$dog2,$dog3);

※合并数组
//使用array_merge()函数合并数组
$result = array_merge($array1,$array2,$array3,$array4,$array5);
array_rand($input,10);//随机取出10个单元
count($array,COUNT_RECURSIVE);//显示数组单元数目,2参数只可为1或者COUNT_RECURSIVE,有时可遍历多维数组

※出入栈
//数组出栈,后进先出,数组最后一个单元弹出
array_pop($array);
//数组入栈,将7,8两个数值添加到数组尾部
array_push($array,7,8);
//将数组开头单元移出数组
array_shift($array);
//将7,8添加入数组开头
array_unshift($array,7,8);

PHP 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
微信接口生成带参数的二维码
Jul 31 PHP
PHP聊天室简单实现方法详解
Dec 08 PHP
PHP游戏编程25个脚本代码
Feb 08 #PHP
PHP通用检测函数集合
Feb 08 #PHP
.htaccess文件保护实例讲解
Feb 06 #PHP
延长phpmyadmin登录时间的方法
Feb 06 #PHP
PHP开发中的错误收集,不定期更新。
Feb 03 #PHP
一些php技巧与注意事项分析
Feb 03 #PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 #PHP
You might like
for循环连续求和、九九乘法表代码
2012/02/20 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
详解JS模块导入导出
2017/12/20 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
Python中优化NumPy包使用性能的教程
2015/04/23 Python
处理Python中的URLError异常的方法
2015/04/30 Python
django静态文件加载的方法
2018/05/20 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
使用python实现飞机大战游戏
2020/03/23 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
JPA的特点
2014/10/25 面试题
校园之星获奖感言
2014/01/29 职场文书
幼师小班个人总结
2015/02/12 职场文书
员工表扬信怎么写
2015/05/05 职场文书
文艺演出主持词
2015/07/01 职场文书
小学毕业感言100字
2015/07/30 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
靠谱准确的求职信
2019/04/02 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python