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 相关文章推荐
一个改进的UBB类
Oct 09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
php三种实现多线程类似的方法
Oct 30 PHP
PHP Echo字符串的连接格式
Mar 07 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 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水印
2007/03/16 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php随机显示图片的简单示例
2014/02/15 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
php服务器的系统详解
2019/10/12 PHP
js操作二级联动实现代码
2010/07/27 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
如何基于python实现不邻接植花
2020/05/01 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
简单英文演讲稿
2014/01/01 职场文书
兽医医药专业求职信
2014/07/27 职场文书
党员民主生活会材料
2014/12/15 职场文书
搬迁通知
2015/04/20 职场文书
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server