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中日期加减法运算实现代码
Dec 08 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
PHP安装memcached扩展笔记
May 28 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
mongodb和php的用法详解
Mar 25 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
Python实现二分法算法实例
2015/02/02 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
农救科工作职责
2013/11/27 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
工作鉴定评语
2014/05/04 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书