第4章 数据处理-php数组的处理-郑阿奇


Posted in PHP onJuly 04, 2011

1. 数组的处理:

数组的创建和初始化:

arrary()函数创建数组,默认情况下0元素是数组的第一个元素,count()sizeof()函数获得数据元素的个数

2. 使用变量建立数组

compact()在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值.

<?php 
$num=10; 
$str="string"; 
$array=array(1,2,3); 
$newarray=compact("num","str","array"); 
print_r($newarray); 
/*结果 
array([num]=10 [str]=---->string [array]=&gt;array([0]=&gt;1 [1]=&gt;2 [2]=&gt;3)) 
*/ 
?>


extract() 将数组中的单元转为变量

<?php 
$array=array("key1"=-->1,"key2"=2,"key3"=3); 
extract($array); 
echo "$key1 $key2 $key3";//输出1 2 3 
?>

3.使用两个数组创建一个数组

<?php 
//array_combine(array $keys, array $values) 

$a=array('green','red','yellow'); 
$b=array(' volcado','apple','banana'); 
$c=array_combine($a,$b); 
print_r($c); 

?>


4. 建立指定范围数组

range()

5.自动建立数组

检查数组是否存在某个键名和值可以使用。

array_key_exists()in_arrary函数,isset()检查数组中的键名,当键名为NULL时,isset()返回false,而array_key_exists()返回true。

  • array_search()函数用于检查数组的键值是否存在,不存在返回NULL。
  • key()函数可以取得数组当前单元的键名。
  • list()函数,将数组中值赋给指定的变量。在数组遍历中非常有用。
$arr=array("红色","蓝色","白色");
list($red,$blue,$white)=$arr;
echo $red; //红色
echo $blue; //蓝色
echo $white; // 白色
  • array_fill()和array_fill_keys()可以用给定的值班填充数组的值和键名
  • array_filp()可以交换数组中的键名和值,另外如果交换数组中有相同的值,则相同的值转换为键名后,值保留最后一个
  • array_keys()和array_values()函数可以取得数组中的键名和值,并保存到一个新的数组中。
  • array_splice(arry $input,int $offset[,int $length[,array $replacement]])将数组中的一个或多个单元删除并用其它值代替。
  • array_unique(),可以移除数组中的重复的值,返回一个新数组,并不会破坏原有的数组。

数组的遍历与输出

1. 使用while循环访问数组

应用whilelist()each()函数对数组遍历

2. for循环访问数组

3. 使用foreach循环访问数组

<?php 
$color=array("a"=-->"red","blue","white"); 
foreach($color as $value) 
{ 
echo $value."
";//输出数组的值 
} 
foreach($color as $key=&gt;$value) 
{ 
echo $key."=&gt;".$value."
";//输出数组的键名和值 
} 
?>

数组的排序

1. 升序排序 

  • sort(array $array[,int $sort_flags]) 注意:在对含有混合类型值的排序时要小尽,因为可能会产生错误。
  • asort()也可升序排序,是对数组的值进行排序,但它排序后的数组还保持键名和值之间的关联。
  • Ksort()对数组的键名排序,排序后键名和值之间的关联不改变。

2. 降序排序。

  • rsort()
  • arsort()
  • krsort()

3. 多维数组的排序。

需要自行重新设计遍历,默认函数库仅支持一维数组。

4. 对数组重新排序。

shuffle()
作用将数组用随机的顺序排列,并删除原有的键名

array_reverse()
将一个数组按相反顺序排序

5. 自然排序

natsort()对大小写敏感

6. 其它操作

合并数组

array_merge($array1,$array2)
合并后将一维数以后的数组都当做一个单元返回。
array_merge_recusive()可以在保持现有数组结构下对数组进行合并。

数组的栈操作.

  • 出栈: array_pop($arr);
  • 入栈: array_push($arr,var);

取得数组当前单元

  • current()函数能够获取数组内部指针指向的单元的值,但不移动数组的内部指针。
  • next($arr),将指针移到下一个单元。
  • end($arr)将指针移到尾部。

数组计算

  • count()
  • sizeof()

计算数组中的元素个数
array_count_values()函数可以计算数组中的一个值出现的次数

PHP 相关文章推荐
利用php来自动调用不同服务器上的flash
Oct 09 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 #PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 #PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 #PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 #PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 #PHP
PHP array_multisort()函数的使用札记
Jul 03 #PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 #PHP
You might like
自定义session存储机制避免会话保持问题
2014/10/08 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
jQuery原型属性和原型方法详解
2015/07/07 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
详解javascript函数的参数
2015/11/10 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
Python 常用string函数详解
2016/05/30 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
四风问题自查报告剖析材料
2014/02/08 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
校园广播站开场白
2015/06/01 职场文书
患者身份识别制度
2015/08/06 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python