注册 登录
壹佰网|ERP100 - 企业信息化知识门户 返回首页

的个人空间 https://www.erp100.com/?0 [收藏] [复制] [RSS]

日志

6.数组

已有 437 次阅读2007/8/23 15:38

php内部是关联数组,关联和索引主要是看键是什么,键用不用单引号一样,因为非0开头的整数字符串默认当作整数,用引号是为了预防常量在键里面,也是一个好习惯。

你可以逐个元素创建数组,不过大多是用array()函数,如果没参数就是建立一个空数组。如果初始索引为非数字的字符串,那么后面的索引没制定将是从0开始的整数。

range()创建一个连续的整数或者字符数组 ,如果参数是字符串那么只识别第一个字符。

count()和sizeof()都是获得数组的大小

array_pad(原数组,新数组的元素个数,填充的值)  填充一个数组,原值保留,加入缺少的填充值,原来的值不变,如果是关联数组那么新加的值,键从0开始。

多维数组,就是先建立一维的数组,再把一维数组加到新数组上,在变量上用多维数组必须要用{}

取出数组的值
list($变量1,$变量2,,,,)=可以用,,来跳过数组的值,多出的变量为null。

切割数组
$新数组=array_slice($原数组,复制的初始元素,长度) ,这个函数还可以不看键而按实际的位置来切割。

数组分块
$新数组=array_chunk(原数组,大小[,参数])参数为布尔值,表示是否使用原来的键。新数组为多维数组。

array_keys() 返回一个由原数组的键组成的数组。

array_values() 返回一个由原数组的值组成的数组。

array_key_existe(键,数组) 判断键里面的值是否存在。数组中可能存在这个键但他的值为0,null或者空字符串这时就靠这个函数了。

删除或插入数组
array_splice(原数组,开始位置[,长度,替换的数组])    只认位置不看键的,没长度就直接到尾,长度为0就纯粹是插入,替换的数组比长度过长过短,就自动增长或缩短。

数组变变量
extract(原数组[,参数,变量名前缀]) ;索引数组,就是变量前缀_0 这样的形式。

变量变数组
compact(‘变量1’,‘变量2’,。。。。)这里的变量是变量的名而且不用$在前

遍历数组
foreach(数组 as 变量)
foreach(数组 as $key变量=>$value变量)

迭代器
current()    当前元素
reset()       移动到第一个元素
next()         移动到下一个元素
prev()        移动到前一个元素
end()         移动到最后一个元素
each()      以数组返回当前元素的键和值并移到下一个元素
key()         返回当前元素的键

迭代器控制数组运动。

为每个元素调用函数
array_walk(数组,函数名) 自定义的函数有三个参数,第一个为值,第二个为键,第三为调用时的参数。

function print_row($values,$key,$color){
 print ("<tr><td bgcolor=$color> $values</td><td bgcolor=$color>$key</td></tr>\n");
}

$arr= array('name'=>'chen','age'=>'33','wife'=>'wilme');
echo '<table border=1>';
array_walk($arr,'print_row','lightblue');
echo '</table>';


数组合计
array_reduce(数组,函数名,参数) 参数为基值就是合计后加上的值
函数(实际总数,当前值)

function add_up($totle,$current){
 $totle +=$current*$current;
 return $totle ;
}
$arr=array(2,3,5,7);
$total=array_reduce($arr,'add_up');
echo $total ;

in_array(要找的值,数组,参数)         查找数组,参数为true则要找的值和数组的值类型要一样

array_search()函数功能同上,他主要还能返回要找值的键。

排序
按值排序,然后重新从0开始索引   适合索引数组 sort() 升序   rsot()降序   usort()用户定义的顺序
按值排序  asort()升序  arsort()降序 uasort() 用户定义的顺序
按键排序  ksort()   krsort() 降序   uksort() 用户定义的顺序

按自然顺序排序 自然顺序就是5<10 ,如果按字符那排序的结果就是先10然后是5
natsort()  natcasesort()

array_multsort(数组1[,参数],数组2[,参数],。。)一次对多个索引数组排序,参数为SORT_ASC和SORT_DESC 升序或降序。

翻转数组
array_reverse()

键—值对调  array_flip()

随机顺序 shuffle()

计算数组和 array_sum()

合并两个数组 array_merge(数组1,数组2,数组3,。。)索引数组就是单单的合并,对关联数组会出现相同键的值给后面的值替换。

比较数组的不同
array_diff(原数组,用来比较的数组1,比较数组2,。。。)结果是原数组中,在比较的数组中没出现的元素(保留键)。类型不同都算不同。

过滤元素
array_filter(数组,过滤函数)返回的元素为过滤函数为true的元素。

集合操作
array_mrage(数组1,数组2,。。) 重复的元素也保留
array_unique()重复的不保留

交集array_intersect()只保留重复的元素

差集array_diff()返回只在数组1中出现的元素。

堆栈和队列
堆栈的函数 array_push(数组,变量)  array_pop()
队列的函数 array_shift()   array_unshift()













评论 (0 个评论)

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 03:48 , Processed in 0.006734 second(s), 12 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部