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 相关文章推荐
Windows下利用Gvim写PHP产生中文乱码问题解决方法
Apr 20 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
Mar 17 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
php内嵌函数用法实例
Mar 20 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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服务器实现多session并发运行
2006/10/09 PHP
mysql 字段类型说明
2007/04/27 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
基于vue实现分页效果
2017/11/06 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
JavaScript 异步时序问题
2020/11/20 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python 学习笔记
2008/12/27 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
电子信息专业学生自荐信
2013/11/09 职场文书
物流专业求职计划书
2014/01/10 职场文书
股权转让意向书
2014/04/01 职场文书
个性发展自我评价2015
2015/03/09 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
redis实现排行榜功能
2021/05/24 Redis