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
discuz安全提问算法
Jun 06 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
基于php的微信公众平台开发入门实例
Apr 15 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
php检测文本的编码
Jul 26 PHP
简单谈谈PHP中的trait
Feb 25 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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
短波的认识
2021/03/01 无线电
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
Symfony核心类概述
2016/03/17 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
客户接待方案
2014/02/26 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
Python中的datetime包与time包包和模块详情
2022/02/28 Python
P站美图推荐——变身女主角特辑
2022/03/20 日漫