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 相关文章推荐
提升PHP速度全攻略
Oct 09 PHP
自己前几天写的无限分类类
Feb 14 PHP
PHP与SQL注入攻击[一]
Apr 17 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
php中opendir函数用法实例
Nov 15 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
解决python3 json数据包含中文的读写问题
2018/05/10 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
物流专业大学的自我评价
2014/01/11 职场文书
中文师范生自荐信
2014/01/30 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
房屋出售授权委托书
2014/10/12 职场文书
转学证明范本
2015/06/19 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis