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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
php中namespace use用法实例分析
Jan 22 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
php 自定义错误日志实例详解
Nov 12 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 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 Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP引用的调用方法分析
2016/04/25 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python检测网站链接是否已存在
2016/04/07 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
详解python配置虚拟环境
2019/04/08 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
通过实例解析Python return运行原理
2020/03/04 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
医药营销专业个人自荐信
2013/09/29 职场文书
高三自我鉴定
2013/10/23 职场文书
你懂得怎么写自荐信吗?
2013/12/27 职场文书
打架检讨书100字
2014/01/08 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
化工专业求职信
2014/07/01 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书