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初学者们头痛的十四个问题
Jan 15 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
php printf输出格式使用说明
Dec 05 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
PHP中“简单工厂模式”实例代码讲解
Sep 04 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
PHP中的流(streams)浅析
Jul 02 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
PHP封装的非对称加密RSA算法示例
May 28 PHP
使用Laravel中的查询构造器实现增删改查功能
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
mysql 性能的检查和优化方法
2009/06/21 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
Python常用内置函数总结
2015/02/08 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
Python如何输出警告信息
2020/07/30 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
会计顶岗实习心得
2014/01/25 职场文书
少年闰土教学反思
2014/02/22 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
人事局接收函
2015/01/31 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书