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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
PHP中文汉字验证码
Apr 08 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
Aug 02 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
php 发送带附件邮件示例
Jan 23 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
php生成带logo二维码方法小结
Apr 08 PHP
php连接微软MSSQL(sql server)完全攻略
Nov 27 PHP
php自定义时间转换函数示例
Dec 07 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
php将会员数据导入到ucenter的代码
2010/07/18 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
js实现简单的打印表格
2020/01/15 Javascript
详解Python中的正则表达式的用法
2015/04/09 Python
python 全文检索引擎详解
2017/04/25 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
python实现统计代码行数的小工具
2019/09/19 Python
python获取array中指定元素的示例
2019/11/26 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
签约仪式主持词
2014/03/19 职场文书
测绘工程专业求职信
2014/07/15 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
车间安全生产管理制度
2015/08/06 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android