php ckey=6,6-6-1-php数组相关(2)

1.for比较少用遍历连续数字下标的数组,和c语言差不多,简单记录一下:

for(int $i=0;$i

2.php有专门遍历数组而设计的foreach语句

foreach( $arr as $value ){}

foreach( $arr as $key=>$value){}

多维:使用嵌套

foreach ( $arr as $key => $arr1 ){

foreach($arr1 as $value ){ ...$value...}

}

3.使用each()函数

each($arr) ->  返回一个有四个元素的关联和索引混合的数组

并移动数组指针,直到返回false

20180110233501150778.png

4.list()

为数组赋值:

$info = array("coffee","brown","caffeine");

list($a , , $c)=$info;

echo $c;                             // caffeine

注意:list只能应用于数字索引的数组并假定索引从0开始。索引才有了后面的while(list()=each())的使用。

5.each() 和 list() 循环使用

while( list ( $key,$value) = each($arr)){}

在使用while遍历数组后,each语句已经将指针指向数组末端。再次用while语句需要使用reset()

6.使用数组内部指针控制函数遍历数组

20180110233501152731.png

7.数组相关函数

array_values($contacts);                 //数组,返回所有值

array_keys($contacts);                   //数组,返回所有健值

7.1.1 :

in_array(mixed needle ,array haystack, [bool strict] );        //查找某值是否在指定数组中,返回bool

needle:要查找的值(简单数据类型,数组等),

haystack:查找的数组,

strict:十分严格界定数据类型查找。

in_array函数区分查找内容的大小写。

7.1.2

$key_name = array_search("$value",$array )              //参数与上相同,检查某值是否在其中,返回其健。

7.1.3

bool   array_key_exists("key_name",$array);               //检查数组是否存在指定健

对数组中为null的值会返回true。而isset()会。

7.2

函数  $Array = array_flip( $Array );                              //反转数组的健和值

如果一个值出现多次,则取最后一个重复的值覆盖前面的键值对。

如果有值不是字符串或数组类型,则报错。

7.3 函数 $Array = array_reverse( $Array ,bool lose_key );              //反转数组元素顺序

第二个参数是可选的,如果为true ,则键名将丢失。

8.统计元素的个数和唯一性

8.1 函数count() ,sizeof()是他的别名,功能是一样的

int  count( $var , bool mode )

第一个值为传入要计数的数组或对象,第二个参数为可选,为0或1,是否递归查询多维数组中元素的个数。

20180110233501155661.png

count ( $web , 1) = 10 ;

8.2 函数 $Array = array_count_values ( $ Array )        //统计数组中值出现的次数

20180110233501157614.png

8.3 函数  $Array = array_unique ( $Array );                 //删除数组中重复的值,返回没有重复的新数组。

函数先将值作为字符串排序,然后每个值保留第一次出现的键名的值。注意,先排序,并不是保留出现的第一个。

9.5.3 使用回调函数处理数组的函数

1. array  array_fliter ( array input , "callback function");

第一个参数是需要过滤的数组,第二个参数是将自定义函数以字符串形式传入,

依次将第一个参数的数组的值传入第一个函数,如果返回的是true ,则相应的健值

会传入新形成的array

20180110233501159567.png

2.array_walk()

bool array_walk( array &array , callback funcname , (mixed data) );

第一个为要处理的数组,第二个为回调函数,

函数接收的参数依次为: 元素的值,元素的键,(mixed data)

如果需要直接作用于数组的值,将回调函数的第一个参数指定为引用,&$value

function myfunc3( &$value,$key){

$value = "web";

}

array_walk( $arr , "myfunc3");

array_map ,作用于多个数组。

9.5.4 数组排序

1.

sort(array $array , [sort_flag] );                           //升序

rsort(array $array , [sort_flag] );

此方法键名被忽略,将依序重新使用数字重新索引数组下标。

20180110233501161520.png

sort_flag : 指定排序类型。

20180110233501162497.png

2.

ksort()                                                           //根据键名排序

krsort()

3.

asort() /arsort()                                              //根据值排序

与sort()相比,将保留键名

9.5.5 拆分、合并数组

1.

array array_slice ( array array , int offset [, int length[,bool preserve_keys]])

去一段值并返回

2.

array array_splice ( array &input , int offset , [ , length [ , replacement]])

移除或替代

3.

array_combine (array key ,array value)

合并数组,第一个数组作为键,第二个数组作为值,两个参数必须有相同数目的元素

4.

array_merge ( array array1 [ , array array2 [ , array array3]])

连接数组。

如果键名有重复,则最后一个将覆盖。

如果键名是整数,将以0开始重新索引。

5.

array_intersect( array1 ,array2 , [ ,array3 ...])

交集。

键名保留不变,只有值比较

6.

array_diff( array1 ,array2 , [ , array3...])

差集

9.5.7其他一些有用的数组处理函数

1. mixed array_rand ( array input [ , int num_req ] ) )

从数组中随机选出一个或多个元素返回。

2.shuffle ( ) 把数组元素随机重新排序

3.array_sum() 返回数组所有值的总和

4.array range( mixed first , mixed second , [ , num step] )

创建并返回指定范围的数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值