`
haohao-xuexi02
  • 浏览: 210601 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

转载 PHP 数组(1)

    博客分类:
  • php
阅读更多

原文:http://batwyx.iteye.com/blog/343090


PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
先说说PHP数组的定义…PHP数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可以是数值和关联的,如$array[0],$array[one]…
创建数组
PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array[0]来代表1,创建数值数组时可以省略索引.
$array = array(
   1 => “one”,
   2 => “two”,
   3 => “three”,
   4 => array(
    “one” => 1,
    “two” => 2,
    “three” => 3
   )
);
二维数组,同时又是关联数组,引用时可以$array[4][“one”]来代表1.
三维以上依此类推…
如果要批量创建数组,则可以通过下面这个函数:
array range ( mixed low, mixed high [, number step] )
如$array = range(1,6);代表array(1,2,3,4,5,6);
   $array = range(a,f); 代表 array(a,b,c,d,e,f);

输出数组
PHP中输出数组的函数有比较多,常用的有
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
还有像echo,print,printf都可以输出单个数组.

测试数组
有时我们需要判定一个变量是否为数组,则可以使用:
bool is_array ( mixed var )

增加或删除数组元素
数组声明后并不是一成不变的,可能通过对数组的增加删除来进行深入的操作:
int array_push ( array &array, mixed var [, mixed ...] ) 将一个或多个单元压入数组的末尾,数组的长度根据入栈变量的数目增加,如array_push($array,$var)
mixed array_pop ( array &array ) 将数组的最后一个元素弹出(出栈),并在结束后重置数组的指针
mixed array_shift ( array &array ) 返回数组的第一个元素.
int array_unshift ( array &array, mixed var [, mixed ...] ) 在数组的开头插入一个或多个单元
array array_pad ( array input, int pad_size, mixed pad_value ) 用值将数组填补到指定的长度,如array_pad($array,3,$var);

定位数组元素
bool in_array ( mixed needle, array haystack [, bool strict] ) 检查数组中是否存在某个值
array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回数组中的所有键名,重组成一个新数组
bool array_key_exists ( mixed key, array search ) 检查给定的key是否存在于数组中.
array array_values ( array input ) 返回数组中所有的值
mixed array_search ( mixed needle, array haystack [, bool strict] ) 在数组中搜索给定的值,成功则返回key.

遍历数组
PHP中提供了很多获取key和value的函数
mixed key ( array &array ) 从关联数组中取得键名
mixed reset ( array &array ) 将数组指针重置
array each ( array &array ) 返回数组中的键/值对并将数组向前移一步
mixed current ( array &array ) 返回数组中的当前单元
mixed end ( array &array ) 将数组中的指针移向最后一位
mixed next ( array &array ) 将数组中的指针移向下一位
mixed prev ( array &array ) 将数组中的指针移向上一位
array array_reverse ( array array [, bool preserve_keys] ) 返回一个单元顺序相反的数组
array array_flip ( array trans ) 将数组中的键值角色调换
除了上面的函数外还可以使用循环来对数组中的元素进行遍历,如
foreach (array_expr as $value)
{ statement    }
foreach (array_expr as $key=>$value)
{ statement   }
提取每个键/值对,直到获得所有项或满足某些内部条件为止
void list ( mixed varname, mixed ... ) 把数组中的值赋给一些变量

确定数组大小和唯一性
int count ( mixed var [, int mode] ) 计算数组中单元数组或对象中属性的个数, sizeof 的同名函数
array array_count_values ( array input ) 统计数组中所有值出现的次数
array array_unique ( array array ) 移除数组中重复的值

数组排序
这个听说是计算器的核心问题…呵呵…事实也是这样…
bool sort ( array &array [, int sort_flags] ) 对数组进行排序
bool natsort ( array &array ) 用自然排序法对数组进行排序
bool natcasesort ( array &array ) 用自然排序法对数组进行排序,不区分大小写
bool rsort ( array &array [, int sort_flags] ) 对数组进行逆向排序
bool asort ( array &array [, int sort_flags] ) 对数组进行排序并保持索引关系
bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) 对多个数组或多维数组进行排序
bool arsort ( array &array [, int sort_flags] ) 对数组进行逆序排序并保持索引关系
bool ksort ( array &array [, int sort_flags] ) 对数组按键名排序
bool krsort ( array &array [, int sort_flags] ) 对数组按键名逆序排序

合并,拆分,接合和分解数组
array array_combine ( array keys, array values ) 创建一个数组,一个数组的值作为其键名,另一个数组的值作为其值
array array_merge ( array array1 [, array array2 [, array ...]] ) 合并一个或多个数组
array array_merge_recursive ( array array1 [, array ...] ) 递归地全部一个或多个数组
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] ) 从数组中取出一段,建立一个新的数组,如果offset为正数,拆分从距数组开关的offset位置开始,如果为负数,则拆分从距数组末尾的offset 位置开始,此时距数组开关的count(input_array)-|length|位置结束
array array_splice ( array &input, int offset [, int length [, array replacement]] ) 把数组中的部分值去掉,并用其它值替代.offset设置同上
array array_intersect ( array array1, array array2 [, array ...] ) 计算数组的交集,即是说如果第一个数组中出现过的值在接下来的几个数组中都有出现,则取出该值
array array_intersect_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的交集
array array_intersect_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的交集
array array_diff ( array array1, array array2 [, array ...] ) 计算数组的差集, 即是说跟第一个数组中不同的值
array array_diff_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的差集
array array_diff_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的差集

其它比较有用的数组函数
数组函数还有好多没有列出来…再上几个比较有用也比较常的,其它的就参考手册啦…手册里很清楚
mixed array_rand ( array input [, int num_req] ) 数组中随机取出一个或多个键,num指定个数
bool shuffle ( array &array ) 将数组打乱
number array_sum ( array array ) 计算数组中所有值的总和,关联数组忽略
array array_chunk ( array input, int size [, bool preserve_keys] ) 将一个数组分割成几个

分享到:
评论

相关推荐

    十天学会php基础 转载

    - 数组:如`$MyArray1 = array( "子", "丑", "寅", "卯" );` 需要注意,PHP语句以分号`;`结束,与ASP不同,这可能会对ASP程序员造成困扰。 ### 5. 运算符 - 数学运算:`+`、`-`、`*`、`/`、`%`、`++`、`--`。 - ...

    一米阳光项目转载phpwind668—关于PHP

    1. 变量与数据类型:PHP 支持多种数据类型,包括整型、浮点型、字符串、布尔型、数组、对象和NULL。 2. 控制结构:包括条件语句(if...else,switch...case)、循环语句(for,while,do...while,foreach)以及跳转...

    10.11_lianxi.php

    会忘记,博主呢秉承着温故而知新的道理把基础从到位复习了一边,其中还包括一些算法指针,统计目录,字符串,数组的方法,mvc思想,匿名函数,引用等,代码可以直接复制到php网页进行测试复习,但是什么学习都需要...

    fanCache缓存类

    * 转载请保留头信息 * 具体功能: 可以缓存一般类型、数组。具有按需调用,有效期设置,模块形式保存。 可能有一些BUG,可以向我发E-MAIL。 */ /* 使用方法 请先设置全局变量 require_once(\"fanCache.inc....

    贴图库+ 纯HTML5贴图库批量上传

    相比PHPSDK:无需中转,省去本地资源消耗。 相比Plupload:无需jQuery,代码仅2KB,轻量小巧。 相比swfupload:无需Flash组建支持,...各位按需随意修改,转载请注明作者博客,谢谢大家~ 欢迎访问:http://qiukong.com

    php实现mysql数据库分表分段备份

    分卷导出思路:统计sql语句变量的长度,按1个字符当成1 字节比较,如果大于设定分卷大小,则写入一个sql文件(我也不知道这样统计是否稳当,这也是借鉴其他的人的)。 分卷导入思路:按行读取sql文件,将每一行当作...

    Mongodb注入攻击

    php下操作mongodb大致有以下两种方式1.用mongo类中相应的方法执行增查减改比如:此时,传递进入的参数是一个数组。2.用execute方法执行字符串比如:此时,传进方法execute的参数就是字符串变量$query特别的,此时的...

    162100论坛程序

    3、缓存资源的浪费、低效的file获取数组方式等等。新论坛程序具备以下特点:1、采用纯文本数据库,短小精悍(仅400KB),特别适用于免费空间;2、建立关系索引存贮记录资源,一查到位,“百万记录,轻松承载”;3、...

    162100论坛程序 v2.0.5

    3、缓存资源的浪费、低效的file获取数组方式等等。</font></p> <p><fontface>新论坛程序具备以下特点: 1、采用纯文本数据库,短小精悍(仅400KB),特别适用于免费空间; 2、建立关系索引存贮记录资源,一查到位,...

Global site tag (gtag.js) - Google Analytics