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 文章中的远程图片采集到本地的代码
Jul 30 PHP
php 数组二分法查找函数代码
Feb 16 PHP
php 归并排序 数组交集
May 10 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
PHP重定向的3种方式
Mar 07 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 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
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
prototype 的说明 js类
2006/09/07 Javascript
(function(){})()的用法与优点
2007/03/11 Javascript
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
简述vue中的config配置
2018/01/23 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
python输出带颜色字体实例方法
2019/09/01 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
python怎么提高计算速度
2020/06/11 Python
三星英国官网:Samsung英国
2018/09/25 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
关于打架的检讨书
2014/01/17 职场文书
工作睡觉检讨书
2014/02/25 职场文书
村居抓节水倡议书
2014/05/19 职场文书
消防志愿者活动方案
2014/08/23 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL